实战3个SHELL脚本

实战1:检查服务器运行状态脚本 

[root@tzPC ~]# cat check.sh
#!/bin/bash
if [ $# -ge 1 ] ;then
        systemctl status $1 > /dev/null
        if [ $? -eq 0 ];then
                echo "$1 服务正在运行!"
        else
                systemctl start $1
        fi
else
        echo "执行脚本的格式"
        echo "sh $0 服务名"
fi

实战2:根据学生成绩判断优良中差

[root@tzPC ~]# cat check_cj.sh
#!/bin/bash
read  -p   "请输入你的成绩  "   cj
if   [ $cj   -ge  0  ]    &&  [  $cj  -le  59  ]  ;then
     echo   "补考"
elif  [  $cj  -ge  60 ]    &&  [  $cj  -le  70   ]   ;then
    echo  "良好"
elif     [ $cj -ge 71 ]     &&  [ $cj   -le  85 ]   ;then
   echo  ""
elif [ $cj  -ge 86 ]     &&  [   $cj  -le  100 ]   ;then
    echo  "优秀"
else
   echo "成绩的有效范围是0-100之间"
fi

 

实战3:每周一晚上3:00 ,备份数据库服务器上webdb库的所有数据到系统的/mysqlbak目录里,使用系统日期做备份文件名。

[root@tzPC ~]# date +%Y-%m-%d
2020-07-16
[root@tzPC ~]# date +%F
2020-07-16

 

脚本

[root@tzPc~]# vim   mysqlbak.sh
#!/bin/bash
baknamefile=`date +%Y-%m-%d`
bakdir=/mysqlbak
user=root
password=123
dbname=webdb
[  -e  $bakdir   ]   ||    mkdir    $bakdir
mysqldump   -u$user   -p$password  --flush-logs  $dbname   >    $bakdir/${baknamefile}-webdb.sql

 

备份/etc目录

[root@tzPC~]# vim etcbak.sh
#!/bin/bash
baknamefile=`date +%Y-%m-%d`
bakdir=/etcbak
srcdir=/etc
[  -e  $bakdir   ]   ||    mkdir    $bakdir
tar zcvf ${bakdir}/${baknamefile}-etc.tar.gz /etc/
echo "========================"
ls -lh ${bakdir}/${baknamefile}-etc.tar.gz
echo "back etc is ok!"

 

添加权限

chmod +x etcbak.sh

 

添加任务计划

crontab -e

 

将错误输出到标准输出然后倒入空洞文件

0 3 * * * /home/etcbak.sh 2>&1 >/dev/null

 

实战3个SHELL脚本

上一篇:Shell脚本学习---理解shell


下一篇:Linux入门及进阶学习推荐书籍