标签:shell
习题1:监控网卡要求:每10分钟检测一次指定网卡流量;如果网卡流量为0,则重启网卡!(使用cron任务计划!)
参考答案:
#!/bin/bash # date:2018年3月21日 LANG=en n1=`sar -n DEV 1 60|grep ens33|grep -i average|awk '{print $5}'|sed 's/\.//g'` n2=`sar -n DEV 1 60|grep ens33|grep -i average|awk '{print $6}'|sed 's/\.//g'` if [ $n1 == "000" ] && [ $n2 == "000" ] then ifdown ens33 ifup ens33 fi
习题2:判断日期是否合法
要求:用shell脚本判断输入的日期是否合法。就是判断日期是都是真实的日期,比如20170110就是合法日期,20171332就不合法。
参考答案:
#!/bin/bash # date:2018年3月21日 if [ $# -ne 1 ] || [ ${#1} -ne 8 ] then echo "Usage: bash $0 yyyymmdd" exit 1 fi date=$1 year=${date:0:4} month=${date:4:2} day=${date:6:2} if echo $day|grep -q '^0' then day=`echo $day|sed 's/^0//'` fi if cal $month $year > /dev/null 2> /dev/null then daym=`cal $month $year|grep -v "$year"|grep -w "$day"` if [ "$daym" != "" ] then echo "ok" else echo "Error:Please input a right date" exit 1 fi else echo "Error: Please input a right date" exit 1 fi
习题3:检查服务
要求:先判断是否安装http和mysql,没有安装进行安装,安装了检查是否启动服务,若没有启动则需要启动服务。
参考答案:
#!/bin/bash # date:2018年3月21日 if_install() { n=`rpm -qa|grep -cw "$1"` if [ $n -eq 0 ] then echo "$1 not install." else echo "$1 installed." fi } if_install httpd if_install mysql chk_ser() { p_n=`ps -C "$1" --no-heading |wc -l` if [ $p_n -eq 0 ];then echo "$1 not start." systemctl start $1 else echo "$1 started." fi } chk_ser httpd chk_ser mysqld
习题4:3位随机数字
要求:写一个脚本产生随机3位的数字,并且可以根据用户的输入参数来判断输出几组。 比如,脚本名字为 number3.sh。
执行方法:
bash number3.sh
直接产生一组3位数字。
bash number3.sh 10
插上10组3位数字。
思路: 可以使用echo $RANDOM获取一个随机数字,然后再除以10,取余获取0-9随机数字,三次运算获得一组。
参考答案:
#!/bin/bash # date:2018年3月21日 get_num(){ n=$[$RANDOM%10] echo $n } get_numbers(){ for i in 1 2 3 do a[$i]=`get_num` done echo "${a[*]}" } if [ -n "$1" ];then m=`echo $1|sed 's/[0-9]//g'` if [ -n "$m" ];then echo "Usage: bash $0 n, n is a number." exit 1 else for i in `seq 1 $1` do get_numbers done fi else get_numbers fi
习题5:三行变一行
参考答案:
标签:shell
原文地址:http://blog.51cto.com/11924224/2089379