1、通过脚本测试主机是否在线
vim ping.sh
js
#!/bin/bash
ping -c2 -w1 $1 &>/dev/null && echo "$1 is online" || echo "$1 is off line"
测试
[root@localhost ~]# vim ping.sh
[root@localhost ~]# bash ping.sh 192.168.107.190
192.168.107.190 is online
[root@localhost ~]# bash ping.sh 192.168.107.191
192.168.107.191 is off line
[root@localhost ~]#
2、通过脚本实现对于系统磁盘的监控
vim disk.sh
js
#!/bin/bash
use=`df | grep /dev/sda | tr -s " "| cut -d " " -f5 | tr -d %`
[ $use -gt 15 ]&& echo "磁盘使用量过高" || echo "正常"
测试
[root@localhost ~]# bash disk.sh
磁盘使用量过高
[root@localhost ~]# vim disk.sh
[root@localhost ~]#
一般过高条件设置为80
[root@localhost ~]# vim disk.sh
[root@localhost ~]# bash disk.sh
正常
[root@localhost ~]#
3、通过if脚本实现对于httpd服务的监控
vim httpd.sh
js
#!/bin/bash
if ss -natp | grep 80 &>/dev/null
then
echo "httpd 服务已开启"
else
echo "httpd 服务未开启"
systemctl start httpd
if ss -natp | grep 80 &>/dev/null
then
echo "成功开启"
else
echo "启动失败"
fi
fi
~
测试
[root@localhost ~]# vim httpd.sh
[root@localhost ~]# bash httpd.sh
httpd 服务已开启
[root@localhost ~]#
4、通过if循环实现 分数的分类 (优秀 良好 及格 不及格)
vim fenshu.sh
js
#!/bin/bash
# 90-100 youxiu 80-89 lianghao 60-79 jige 0-59 bujige
read -p "请输入你的分数(0-100):" num
if [ $num -ge 90 -a $num -le 100 ]
then
echo "优秀"
elif [ $num -ge 80 -a $num -le 89 ]
then
echo "良好"
elif [ $num -ge 60 -a $num -le 79 ]
then
echo "及格"
elif [ $num -ge 0 -a $num -le 59 ]
then
echo "不及格"
else
echo "输入有误"
bash $0
fi
测试
[root@localhost ~]# bash fenshu.sh
请输入你的分数(0-100):68
及格
[root@localhost ~]# 59
bash: 59: 未找到命令...
[root@localhost ~]# bash fenshu.sh
请输入你的分数(0-100):59
不及格
[root@localhost ~]# bash fenshu.sh
请输入你的分数(0-100):90
优秀
[root@localhost ~]#
5、通过shell脚本实现石头剪刀布的游戏
vim youxi.sh
js
#!/bin/bsah
# 0石头 1剪刀 2布
m=`echo $[RANDOM%3]`
read -p "请输入 0石头 1剪刀 2布:" n
if [ $m -eq $n ]
then
echo "打平"
elif [ $m -eq 0 -a $n -eq 1 -o $m -eq 1 -a $n -eq 2 -o $m -eq 2 -a $n -eq 0 ]
then
echo "机器赢,你是 $n 机器是 $m"
elif [ $n -eq 0 -a $m -eq 1 -o $n -eq 1 -a $m -eq 2 -o $n -eq 2 -a $m -eq 0 ]
then
echo "你赢,你是 $n 机器是 $m"
else
echo "输入有误,请重新输入"
bash $0
fi
测试
[root@localhost ~]# bash youxi.sh
请输入 0石头 1剪刀 2布:2
打平
[root@localhost ~]# bash youxi.sh
请输入 0石头 1剪刀 2布:1
你赢,你是 1 机器是 2
[root@localhost ~]# bash youxi.sh
请输入 0石头 1剪刀 2布:0
你赢,你是 0 机器是 1
[root@localhost ~]# vim youxi.sh
[root@localhost ~]#
6、通过case语句来实现对于分数的分类
vim fs.sh
js
#!/bin/bash
read -p "请输入你的分数(正整数)" num
case $num in
9[0-9]|100)
echo "优秀"
;;
8[0-9])
echo "良好"
;;
6[0-9]|7[0-9])
echo "及格"
;;
[0-9]|[1-5][0-9])
echo "不及格"
;;
*)
echo "输入有误,请重新输入"
bash $0
;;
esac
测试
[root@localhost ~]# bash fs.sh
请输入你的分数(正整数)60
及格
[root@localhost ~]# bash fs.sh
请输入你的分数(正整数)90
优秀
7、通过case语句判断输入的是yes还是no
vim key.sh
js
#!/bin/bash
read -p "请输入 yes 或 no:" key
key=` echo $key | tr 'A-Z' 'a-z' `
case $key in
yes|y)
echo "你输入的是yes"
;;
no|n)
echo "你输入的是no"
;;
*)
echo "输入有误"
esac
测试
[root@localhost ~]# bash key.sh
请输入 yes 或 no:YES
你输入的是yes
[root@localhost ~]# bash key.sh
请输入 yes 或 no:NO
你输入的是no
8、通过脚本提取系统的相关信息
vim xitong.sh
js
#!/bin/bash
echo -e "HOSTNAME `hostname`$END"
echo -e "IPADDR `ifconfig ens33 | head -2 | tail -1 | tr -s " "| cut -d " " -f3`$END"
echo -e "OVERSION ` cat /etc/os-release | head -2 | tail -1`$END"
echo -e "KERNEL ` uname -r`$END"
echo -e "CPU ` lscpu | head -13 | tail -1`$END"
echo -e "MEMORY `free -h | grep Mem | tr -s " " | cut -d " " -f2`$END"
echo -e "DISK `lsblk | head -2 | tail -1 | tr -s " " | cut -d " " -f4`$END"
~
测试
[root@localhost ~]# bash xitong.sh
HOSTNAME localhost.localdomain
IPADDR 192.168.107.190
OVERSION VERSION="7 (Core)"
KERNEL 3.10.0-693.el7.x86_64
CPU 型号名称: 12th Gen Intel(R) Core(TM) i7-12700H
MEMORY 1.8G
DISK 80G