; N25-第八周 | Linux运维部落

N25-第八周

1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
在线的主机使用绿色显示;
不在线的主使用红色显示;

#!/bin/bash
ipnet=172.16.250.
trap 'trap_action' INT
trap_action() {
break
return 1
}

for ((i=1;i<=254;i++));do
        ping -c 1 -W 1 ${ipnet}${i} &> /dev/null && echo -en "\033[32m ${ipnet}${i} \033[0m\n" || echo -en "\033[31m ${ipnet}${i} \033[0m\n"
done

2、如何给网络接口配置多个地址,有哪些方式?

[root@MiWiFi-R3-srv tmp]# ifconfig ens33:0 192.168.31.231 netmask 255.255.255.0 up
[root@MiWiFi-R3-srv tmp]# ifconfig ens33:1 192.168.31.232 netmask 255.255.255.0 up

3、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4) 分别统计S开头和K开头的文件各有多少;

#!/bin/bash
declare -i s=0
declare -i k=0 
for i in `ls /etc/rc.d/rc3.d/*`;do

        case $i in
            /etc/rc.d/rc3.d/S*)
                echo ${i##*/}stop && let s++;;
          /etc/rc.d/rc3.d/K*)
                echo ${i##*/}start && let k++;;
            esac
    done
    echo -en "以K开头的文件个数为:${k}\n"
echo -en "以S开头的文件个数为:${s}\n"

4、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;

#!/bin/bash
declare -i sum=0

for i in $*; do
            if id -u $i &> /dev/null; then
                let sum+=$(id -u $i)
        else echo "user not existed."
                exit 2
        fi
done
        echo "用户ID之和为:$sum"

5、写一个脚本
(1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;

#!/bin/bash
declare -i sumd=0
declare -i sumf=0

for i in $(ls $*); do
        filetype=$(file $*/$i | cut -d: -f2 | awk  '{sub(/^[ \t]+/,"");print $0}')
            echo "$i 文件类型为:$filetype."
            if [ "$filetype" == "directory" ]; then
                let sumd++
        else
                let sumf++
        fi
done
        echo "目录数量为:$sumd,文件数量为:$sumf. "

6、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;

#!/bin/bash
if ! id $1 &> /dev/null; then
         echo "user not existed."
         exit 2
    fi
if [ $(id -u $1) -ge 500 ]; then
            echo " $1 is user."
else echo "$1 is system user."        
fi

7、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来

#!/bin/bash
ip=172.16.250.
for i in {20..100}; do
        if ping -w 1 -c 1 $ip$i &> /dev/null; then
                echo "$ip$i is up."
        fi
done

  
8、打印九九乘法表;

#!/bin/bash
for i in {1..9};do
        for j in $(seq 1 $i);do
                echo -en "${j}x${i}=$[$j*$i]\t"
        done
        echo
done

原创文章,作者:lyj821202,如若转载,请注明出处:/69875

发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论列表(1条)

  • 马哥教育
    马哥教育 2017-06-20 11:28

    如果脚本多加一些判断条件的话会更好

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1660809109@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班

友情链接:万达主管QQ  华宇招商  万达娱乐注册  万达主管  万达娱乐直属  万达娱乐招商  guoqibee.com  万达开户  万达注册  万达招商QQ