实战7个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

实战1:将/opt目录下所有的日志文件自动打包

[root@tzPC ~]# cat log.sh
#!/bin/bash
SRC_DIR=/var/log/
DES_DIR=/opt/backup/`date +%Y-%m-%d`
if
        [ ! -d $DES_DIR  ] ;then
                mkdir -p $DES_DIR
fi
for i in `find $SRC_DIR -name "*.log"`
do
        tar czf $i.tgz $i
done
mv /var/log/*.tgz $DES_DIR
ls -lh $DES_DIR
echo "The scripts exec end,Files tar successfully!"

实战2:找出192.168.1.1-10网段中,服务器已经关机的IP地址

[root@tzPC ~]#  cat ping.sh
#!/bin/bash
i=1
for (( i=1;i<10;i++ ))
do
        ping -c 3 192.168.1.$i &>/dev/null
        if [ $? -ne 0 ] ;then
                echo 192.168.1.$i is shutdown
        fi
done

实战3:批量创建账号并生成随机密码

date +%s 表示1970年1月1日距今多少秒了

cut -c 1-8 取1-8个字符

[root@tzPC ~]# cat useradd2.sh
#!/bin/bash
for i in tz{1..10}
do
        useradd $i
        pass=`date +%s | md5sum | cut -c 1-8`
        sleep 1
        echo "$i:$pass" >> /tmp/passwd.log
        echo $pass |passwd --stdin $i > /dev/null 2>&1
        if [ $? -eq 0  ];then
        echo "create user is successfully!"
        else
        echo "create user is failed!"
        fi
done

实战-升级系统中的java版本到1.8

安装jdk java运行环境并升级

查看java版本

java -version

  安装rz

yum install -y lrzsz 

   sz:将选定的文件发送(send)到本地机器
   rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)

使用rz将本地jdk安装包上传到服务器

安装jdk

rpm -ivh jdk-8u161-linux-x64.rpm

查看jdk信息,如安装所在目录/usr/java

rpm -pql jdk-8u161-linux-x64.rpm

 在文件的最后添加以下内容

vim /etc/profile  
export JAVA_HOME=/usr/java/jdk1.8.0_161
export JAVA_BIN=/usr/java/jdk1.8.0_161/bin
export PATH=${JAVA_HOME}/bin:$PATH
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar

 使配置文件生效,这样就升级成功了

source /etc/profile
今天的学习是为了以后的工作更加的轻松!
原文地址:https://www.cnblogs.com/tz90/p/13325361.html