shell编程案例大全(持续更新)

谁都会走 提交于 2019-12-02 11:14:42

与服务相关的脚本

1.判断apache服务是否正常,如果不正常则重启,并且输出信息到屏幕,把服务信息写入到一个新的文件中,可以把这个脚本加入到循环定时任务里面去

# 判断apache服务是否开启,如果没有开启则将其自动开启
test=$(ps aux | grep httpd | grep -v httpd)
if [[ -n $test ]]
        then
                echo "$(date)  apache is OK" >> /log/apache
        else
                echo "$(date) apache is failed"
                /usr/bin/systemctl restart httpd &> /dev/null
                if [[ $?==0 ]];
                        then
                                echo "restart success" >> /log/apache
                        else
                                echo "reestart fail" >> /log/apache
                fi
fi


如图
在这里插入图片描述

与文件相关的脚本

批量解压缩某个目录下的压缩文件

#!/bin/bash
read -p 'enter a dir' dir
touch /root/text
cd $dir
ls *.tar.gz >> /root/text
ls *.tgz >> /root/text

for i in $(cat /root/text)
        do
                tar -zxf $i &> /dev/null
        done
rm -rf /root/text

在这里插入图片描述

与用户管理相关的脚本

批量添加用户

#!/bin/bash
# 批量添加用户
read -p "name:" name
read -p "num:" num
read -p "password:" passwd
if [ ! -z $name -a ! -z $num -a ! -z $passwd ];then
        y=$(echo $num | sed 's/[0-9]//g')
        if [[ -z $y ]]
                then
                        for (( i=0;i<$num;i=i+1 ))
                                do
                                        /usr/sbin/useradd "$name$i" &> /dev/null
                                        echo $passwd | /usr/bin/passwd --stdin "$name$i" &> /dev/null
                                done
        fi
fi

在这里插入图片描述
删除所有普通用户

#!/bin/bash
#删除所有普通用户
for i in $(cat /etc/passwd | grep "/bin/bash" | grep -v "/root" | cut -d ":" -f 1)
        do
                userdel -r $i
        done

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!