shell 练习1

创建目录/shell2,以下所有脚本文件放在此目录中

1、ping主机测试,查看主机是否存活;

#! /bin/bash
ping -c 3 -w 1 www.baidu.com 
echo $?


2、判断一个用户是否存在;

#! /bin/bash
read -p "please input user name:" name
$(id -u $name &>/dev/null)
if [ $? -eq 0 ];then
        echo "this user is exit"
else
        echo "this user is not exit...."
        useradd $name
        echo "is create $name ....."
fi


3、判断当前内核主版本是否为3,且次版本是否大于10;

#! /bin/bash
master=$(uname -r | cut -d "." -f1)
second=$(uname -r | cut -d "." -f2)
if [ $master -gt 3 -a $second -gt 10 ];then
        echo "主版本号为:$master    次版本号为:$second"
fi


5、判断nginx是否运行;如果没有,则运行它,并且开机启动


6、判断指定的主机是否能ping通,必须使用$1变量;

#! /bin/bash
read -p "please input zhijiming or ip:" haha
ping -c 2 $haha &>/dev/null
num=$?
if [ $num -eq 0 ];then
        echo "主机能ping通"
else    
        echo "主机不能ping通"
fi     


7、报警脚本,要求如下:
    根分区剩余空间小于20%
    内存已用空间大于80%
    向邮箱发送告警邮件
    配合crond每5分钟检查一次
    [root@locaklhost ~]# echo "邮件正文"  | mail -s "邮件主题" alice 

 1 #! /bin/bash
  2 total=$(free -m | grep Mem | tr -s " " | cut -d " " -f2)
  3 used=$(free -m | grep Mem | tr -s " " | cut -d " " -f3)
  4 #内存
  5 a=$(df -Th | grep "/"$  | tr -s " " | cut -d " " -f6 | cut -    d "%" -f1)
  6 #内存已用空间比例
  7 num=$(echo "scale=0;($used / $total)*100" | bc)
  8 if [ $a -lt 30 ] ; then
  9        echo "根分区剩余空间小于30%" | mail -s "warning!!" 33    29507405@qq.com
 10 elif [ $num -gt 80 ] ;then
 11         echo "内存已用80%" | mail -s "warning!!" 3329507405@    qq.com
 12 else
 13         echo "都正常"
 14 fi    


8、判断用户输入的是否是数字,如果是数字判断该数字是否大于10;

#! /bin/bash
read -p "please input a number:" num
expr $num + 5 &>/dev/null || {
        echo "must ipput number!!!!!!!" 
        exit
}
expr $num &>/dev/null
[ "$?" -ne 0 ] && echo "is not input number,please input"&&exit
[ $num -gt 10 ] && echo "$num > 10" && exit
[ $num -lt 10 ] && echo "$num < 10" && exit
[ $num -eq 10 ] && echo "$num = 10" && exit


9、计算用户输入的任意两个整数的和、差、乘积、商、余数,
    判断用户输入的参数是否是两个,如果不是,提示用法;
    判断用户输入的是否是整数,如果不是,则给出提示终止运行。

#! /bin/bash
read -p "please input two number:" a b

  #判断是否输入了两个数
echo $a + 2 &>/dev/null
aa=$?
echo $b +2 &>/dev/null
bb=$?
[ $aa -ne 0 -a $bb -ne 0 ] && echo "you must input two number!"&&exit

# 检查输入的是否为整数
 24 if ! [[ $a =~ ^[0-9]$ ]] || ! [[ $b =~ ^[0-9]$ ]]; then
 25     echo "请输入整数"
 26     exit 1
 27 fi

  #计算两个整数的和、差、乘积、商、余数
sum=$(($a+$b))
plus=$(($a-$b))
cheng=$(($a*$b))
shang=$(($a/$b))
yu=$(($a%$b))
echo "和为$sum"
echo "差为$plus"
echo "乘积为$cheng"
echo "商为$shang"
echo "余数为$yu"       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值