一、检测服务是否运行脚本
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





