一、检测服务是否运行脚本
1.业务需求
根据服务的状态命令的返回的状态码进行判断
0 服务正在运行 3 没有运行 4 没有这个服务
2.脚本代码
[root@xian /server/scripts]# cat server_status.sh #!/bin/bash # File Name: server_status.sh # Author: lixian ####################### #根据用户输入的位置变量进行检测服务 systemctl status "$1" &>/dev/null State=$? if [ $State -eq 0 ];then echo "$1 服务正在运行中..." elif [ $State -eq 3 ];then echo "$1 服务没有在运行..." elif [ $State -eq 4 ];then echo "请检查${1}服务是否安装!系统没有这个${1}服务!" else echo "系统中没有正在你输入的PID号的服务" fi
3.执行结果
[root@xian /server/scripts]# sh server_status.sh nginx nginx 服务没有在运行... [root@xian /server/scripts]# sh server_status.sh httpd 请检查httpd服务是否安装!系统没有这个httpd服务! [root@xian /server/scripts]# sh server_status.sh mariadb mariadb 服务正在运行中...
二、监控磁盘的使用率
1.业务需求
监控跟分区磁盘,给磁盘的使用率定义一个阈值,跟分区使用率大于阈值,则进行报警发邮件给管理员
2.脚本代码
#!/bin/bash # File Name: df_fq.sh # Author: lixian ####################### #定义内存值变量 Sda=$(df -h | grep /dev/sda3 | awk '{print $5}' | cut -d "%" -f 1) #判断内存值大小 if [ $Sda -ge "20" ];then echo -e "\033[41;37m 显哥哥~跟分区满啦,已经使用${Sda}%,快去看看! \033[0m" echo "当前根分区使用率过高!根分区使用率为:${Sda}%" |mail -s "内存使用率过高!" lixian656@qq.com &>/dev/null echo "主人,我已经发邮件通知你了哟!请及时查看~" else echo -e "\033[42;37m 主人,跟分区内存使用正常!已经使用${Sda}% \033[0m" fi
3.执行结果
三、创建用户脚本
1.脚本代码
[root@xian /server/scripts]# cat useradd.sh #!/bin/bash # File Name: useradd.sh # Author: lixian ####################### source /etc/init.d/functions #提示用户输入要进行创建的用户 read -p "请输入需要创建的用户名:" User #判断用户是否存在系统 if id $User &>/dev/null;then action "错误:用户已存在系统,不能创建用户!" /bin/false else useradd $User &>/dev/null if [ $? -eq 0 ];then action "恭喜:用户创建成功!" /bin/true else echo -e "\033[41;37m 错误:用户创建失败!\033[0m" /bin/false fi fi
2.执行结果
四、判断学生成绩优劣
1.业务需求
根据用户输入的成绩,判断成绩的优劣。
2.脚本代码
[root@xian /server/scripts]# cat cj.sh #!/bin/bash # File Name: cj.sh # Author: lixian ####################### #提示用户输入成绩 source /etc/init.d/functions read -p "成绩检测系统,请输入你的成绩:" lx expr 1 + $lx &>/dev/null if [ $? -ne 0 ];then action "成绩是正整数,憨憨!" /bin/false exit fi #成绩判断 if [ ${lx} -ge "0" -a ${lx} -lt "59" ];then action "成绩不咋地呀!继续努力!" /bin/true elif [ ${lx} -ge "60" -a ${lx} -lt "79" ];then action "成绩还行吧,凑合!" /bin/true elif [ ${lx} -ge "80" -a ${lx} -lt "89" ];then action "我曹,好厉害呀!" /bin/true elif [ ${lx} -ge "90" -a ${lx} -lt "100" ];then action "牛逼!牛逼!" /bin/true elif [ $lx -eq "100" ];then action "你牛逼炸了!" /bin/true elif [ $lx -gt "100" ];then action "请输入的成绩不在0-100范围内!" /bin/false fi
3.执行结果
五、用户输入前缀和后缀,创建用户脚本
1.业务需求
1. 执行脚本时,提示用户输入前缀,前缀必须是有字母组成的 例如:lx
2. 提示用户输入后缀,后缀必须是数字,例如:123
3. 根据用户的前缀和后缀进行创建用户
2.脚本思路
1. 提示用户输入前缀 read -p
2. 判断用户输入的前缀是否为字母或者为空值。
3. 提示用户输入后缀 read -p
4. 判断用户输入的后缀是否为数字
5. 将用户的前缀和后缀组合成一个用户
6. 判断该用户是否存在该系统
7. 存在则不进行创建,不存在则进行创建
8. 根据创建的结果进行返回信息
3.脚本代码
[root@xian /server/scripts]# cat user_qz_hz.sh #!/bin/bash # File Name: user_qz_hz.sh # Author: lixian ####################### #提示用户输入前缀 read -p "请输入你要创建用户的前缀(必须是字母组成哦):" Qz #判断用户输入的前缀是否全部是字母 if [[ ! $Qz =~ ^[a-Z]+$ ]];then echo "你输入的前缀不符合要求!必须是字母组成!" exit fi #提示用户输入后缀 read -p "请输入你要创建用户的后缀(必须是数字组成哦):" Hz #判断用户输入的前缀是否全部是数字 if [[ ! $Hz =~ ^[0-9]+$ ]];then echo "你输入的前缀不符合要求!必须是数字组成!" exit fi #判断用户输入的用户组成是否存在系统内 User=${Qz}${Hz} id $User &> /dev/null if [ $? -eq 0 ];then echo "用户${User}已经存在该系统!不需要再创建!" else useradd $User &>/dev/null if [ $? -eq 0 ];then echo "用户${User}创建成功" else echo "用户${User}创建失败" fi fi
4.脚本执行
六、清空日志,并保留最近的100行
1.业务需求
1. 清空/var/log/messages
2. 要保留最近的100行内容
3. 只能是root超级管理员才能执行这个脚本
2.脚本代码
#!/bin/bash # File Name: Del_logs.sh # Author: lixian ####################### if [ "$USER" != "root" -o $UID -ne 0 ];then echo "当前用户${USER}不是超级管理员用户!没有权限执行${0}脚本!" exit fi #判断文件是否存在 File_Log=/var/log/messages if [ -f $File_Log ];then #先保留最近100行内容 tail -100 $File_Log > ${File_Log}.bak && cat ${File_Log}.bak > $File_Log if [ $? -eq 0 ];then echo "清空${File_Log}日志成功!已保留100行日志文件!" else echo "${File_Log}日志清空失败!请检查脚本或手动清除!" fi else echo "${File_Log}文件不存在!无法进行清空操作!" fi
3.执行结果
[root@xian /server/scripts]# sh Del_logs.sh 清空/var/log/messages日志成功!已保留100行日志文件! [root@xian /server/scripts]# cat /var/log/messages |wc -l 100