使用Shell脚本监控主机
一、使用test命令测试
1、 文件测试
查看前一条命令返回的值,返回0表示条件成立
[root@centos01 ~]# [ -d /media/ ]
查看前一命令的返回值,返回1表示条件不成立
[root@centos01 ~]# [ -d /media/cdrom/Server ]
无输出表示该目录不存在
输出yes表示该目录存在
2、 整数值比较
查看当前已登陆用户数
[root@centos01 ~]# Unum=who | wc -l
测试结果(大于)0
判断物理内存当前的磁盘缓存大小低于1024mb时输出具体数值
3、 字符串比较
判断当前系统语言环境,当发现不是en.US时输出提示信息Not en.US
查看当前语言环境
字符串测试结果(不等于)
使用yes或者on来确认某个任务
4、 逻辑测试
判断当前linux系统的内核版本是否大于3.4
查看内核版本号
取主版本号和取次版本号
二、if语句应用
1、单分支if语句应用
查看有没有/media/cdrom目录,若没有将新建此目录
查看有没有这个目录
[root@centos01 ~]# vim chkmountdir.sh
#!/bin/bash
MOUNT_DIR="/media/cdrom/"
if [ ! -d $MOUNT_DIR ]
then
mkdir -p KaTeX parse error: Expected 'EOF', got '#' at position 127: …oot@centos01 ~]#̲ vim /opt/chkif…USER" != “root” ]
then
echo “错误:非root用户,权限不足!”
exit 1
fi
fdisk -l /dev/sda
[root@centos01 ~]# chmod +x /opt/chkifroot.sh
不是root用户则报错
是root账户登陆可以查看
2、双分支if语句应用
测试网络贯通性
[root@centos01 ~]# vim ping.sh
#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null
if [ $? -eq 0 ]
then
echo “Host $1 is up”
else
echo “Host $1 is down”
fi
[root@centos01 ~]# chmod +x ping.sh
3、多分支if语句应用
[root@centos01 ~]# vim cj.sh
#!/bin/bash
read -p “输入您的分数:” insert
if [ $insert -ge 85 ] && [ $insert -le 100 ]
then
echo “考试成绩为优秀”
elif [ $insert -ge 70 ] && [ $insert -le 84 ]
then
echo “考试成绩为合格”
else
echo “回家打吽腿”
fi
[root@centos01 ~]# chmod +x cj.sh