zoukankan      html  css  js  c++  java
  • 实战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
    今天的学习是为了以后的工作更加的轻松!
  • 相关阅读:
    雅虎网站页面性能优化的34条黄金守则
    borderimage
    jQuery实现滚动加载图片效果
    mysql数据库中创建与删除数据表
    (10)一步一步开发一个简单CAD之捕捉
    apach启动失败的原因
    (12)一步一步开发一个简单CAD之观察者模式
    简单基于OPENGL的三维CAD框架(1)照相机类
    简单基于OPENGL的三维CAD框架(1)COpenGLDC
    (13)一步一步开发一个简单CAD之像皮筋类
  • 原文地址:https://www.cnblogs.com/tz90/p/13325361.html
Copyright © 2011-2022 走看看