<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          7 個日常實用的 Shell 拿來就用腳本實例!

          共 7840字,需瀏覽 16分鐘

           ·

          2021-06-17 17:42


          本文轉(zhuǎn)載自:波哥IT的人生

          今天來給大家分享 7 個日常實用腳本;

          1、list_sys_status.sh

          顯示系統(tǒng)使用的以下信息:

          主機名、IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)、DNS服務(wù)器IP地址信息

          #!/bin/bash
          IP=`ifconfig eth0 | head -2 | tail -1 | awk '{print $2}' | awk -F":" '{print $2}'`
          ZW=` ifconfig eth0 | head -2 | tail -1 | awk '{print $3}' | awk -F":" '{print $2}'`
          GW=`route -n | tail -1 | awk '{print $2}'`
          HN=`hostname`
          DNS=`head -1 /etc/resolv.conf | awk '{print $2}'`
          echo '此機IP地址是' $IP
          echo '此機子網(wǎng)掩碼是' $ZW
          echo '此機網(wǎng)關(guān)是' $GW
          echo '此機主機名是' $HN
          echo '此機DNS是' $DNS

          2、mysqlbak.sh備份數(shù)據(jù)庫目錄腳本

          #!/bin/bash
          DAY=`date +%Y%m%d`
          SIZE=`du -sh /var/lib/mysql`
          echo "Date: $DAY" >> /tmp/dbinfo.txt
          echo "Data Size: $SIZE" >> /tmp/dbinfo.txt
          cd /opt/dbbak &> /dev/null || mkdir /opt/dbbak
          tar zcf /opt/dbbak/mysqlbak-${DAY}.tar.gz /var/lib/mysql /tmp/dbinfo.txt &> /dev/null
          rm -f /tmp/dbinfo.txt

          crontab-e
          55 23 */3 * * /opt/dbbak/dbbak.sh

          3、每周日半夜23點半,對數(shù)據(jù)庫服務(wù)器上的webdb庫做完整備份

          每備份文件保存到系統(tǒng)的/mysqlbak目錄里

          用系統(tǒng)日期做備份文件名 webdb-YYYY-mm-dd.sql

          每次完整備份后都生成新的binlog日志

          把當(dāng)前所有的binlog日志備份到/mysqlbinlog目錄下

          #mkdir /mysqlbak 
          #mkdir /mysqlbinlog
          #service mysqld start
          cd /shell
          #vi webdb.sh
          #!/bin/bash
          day=`date +%F`
          mysqldump -hlocalhost -uroot -p123 webdb > /mysqlbak/webdb-${day}.sql
          mysql -hlocalhost -uroot -p -e "flush logs"
          tar zcf /mysqlbinlog.tar.gz /var/lib/mysql/mysqld-bin.0*
          #chmod +x webdb.sh 
          #crontab -e
          30 23 * * 7 /shell/webdb.sh

          4、very.ser.sh(檢查任意一個服務(wù)的運行狀態(tài))

          只檢查服務(wù)vsftpd httpd sshd crond、mysql中任意一個服務(wù)的狀態(tài)

          如果不是這5個中的服務(wù),就提示用戶能夠檢查的服務(wù)名并退出腳本

          如果服務(wù)是運行著的就輸出 "服務(wù)名 is running"

          如果服務(wù)沒有運行就啟動服務(wù)

          方法1:使用read寫腳本

          #!/bin/bash
          read -p "請輸入你的服務(wù)名:" service
          if [ $service != 'crond' -a $service != 'httpd' -a $service != 'sshd' -a $service != 'mysqld' -a $service != 'vsftpd' ];then
          echo "只能夠檢查'vsftpd,httpd,crond,mysqld,sshd"
          exit 5
          fi
          service $service status &> /dev/null

          if [ $? -eq 0 ];thhen
          echo "服務(wù)在線"
          else
          service $service start
          fi

          方法2:使用位置變量來寫腳本

          if [ -z $1 ];then
          echo "You mast specify a servername!"
          echo "Usage: `basename$0` servername"
          exit 2
          fi
          if [ $1 == "crond" ] || [ $1 == "mysql" ] || [ $1 == "sshd" ] || [ $1 == "httpd" ] || [ $1 == "vsftpd" ];then
          service $1 status &> /dev/null
          if [ $? -eq 0 ];then
          echo "$1 is running"
          else
          service $1 start
          fi
          else
          echo "Usage:`basename $0` server name"
          echo "But only check for vsftpd httpd sshd crond mysqld" && exit2
          fi

          5、pc_noline.sh

          輸出192.168.1.0/24網(wǎng)段內(nèi)在線主機的ip地址

          統(tǒng)計不在線主機的臺數(shù),并把不在線主機的ip地址和不在線時的時間保存到/tmp/ip.txt文件里

          #!/bin/bash
          ip=192.168.1.
          j=0
          for i in `seq 10 12`
          do
          ping -c 3 $ip$i &> /dev/null
          if [ $? -eq 0 ];then
          echo 在線的主機有:$ip$i
          else
          let j++
          echo $ip$i >> /tmp/ip.txt
          date >> /tmp/ip.txt
          fi
          done
          echo 不在線的主機臺數(shù)有 $j

          6、一個簡單的網(wǎng)站論壇測試腳本

          用交互式的輸入方法實現(xiàn)自動登錄論壇數(shù)據(jù)庫,修改用戶密碼

          [root@test1 scripts]# vim input.sh

          #!/bin/bash

          End=ucenter_members
          MYsql=/home/lnmp/mysql/bin/mysql

          read -p "Enter a website directory : " webdir
          WebPath=/home/WebSer/$webdir/config
          echo $WebPath

          read -p "Enter dbuser name : " dbuser
          echo $dbuser

          read -sp "Enter dbuser password : " dbpass

          read -p "Enter db name : " dbname
          echo $dbname

          read -p "Enter db tablepre : " dbtablepre
          echo $dbtablepre

          Globalphp=`grep "tablepre*" $WebPath/config_global.php |cut -d "'" -f8`
          Ucenterphp=`grep "UC_DBTABLEPRE*" $WebPath/config_ucenter.php |cut -d '.' -f2 | awk -F "'" '{print $1}'`

          if [ $dbtablepre == $Globalphp ] && [ $dbtablepre == $Ucenterphp ];then

               Start=$dbtablepre
               Pre=`echo $Start$End`

               read -p "Enter you name : " userset
               echo $userset

               Result=`$MYsql -u$dbuser -p$dbpass $dbname -e "select username from $Pre where username='$userset'\G"|cut -d ' ' -f2|tail -1`
               echo $Result
               if [ $userset == $Result ];then
                     read -p "Enter your password : " userpass
                     passnew=`echo -n $userpass|openssl md5|cut -d ' ' -f2`

                     $MYsql -u$dbuser -p$dbpass $dbname -e "update $Pre set password='$passnew' where username='$userset';"
                     $MYsql -u$dbuser -p$dbpass $dbname -e "flush privileges;"
               else
                     echo "$userset is not right user!"
                     exit 1
               fi
          else
               exit 2
          fi

          7、slave_status.sh(檢查mysql主從從結(jié)構(gòu)中從數(shù)據(jù)庫服務(wù)器的狀態(tài))

          1)本機的數(shù)據(jù)庫服務(wù)是否正在運行

          2)能否與主數(shù)據(jù)庫服務(wù)器正常通信

          3)能否使用授權(quán)用戶連接數(shù)據(jù)庫服務(wù)器

          4)本機的slave_IO進程是否處于YES狀態(tài)

          本機的slave_SQL進程是否處于YES狀態(tài)

          [root@test1 scripts]# vim test.sh

          #!/bin/bash
          netstat -tulnp | grep :3306 > /dev/null
          if [ $? -eq 0 ];then
          echo "服務(wù)正在運行" 
          else
          service mysqld start
          fi
          ping -c 3 192.168.1.100 &> /dev/null
          if [ $? -eq 0 ];then
          echo "網(wǎng)絡(luò)連接正常" 
          else
          echo "網(wǎng)絡(luò)連接失敗"
          fi
          mysql -h192.168.1.100 -uroot -p123456 &> /dev/null
          if [ $? -eq 0 ];then
          echo "數(shù)據(jù)庫連接成功" 
          else
          echo "數(shù)據(jù)庫連接失敗"
          fi
          IO= mysql -uroot -p123 -e "show slave status\G" | grep Slave_IO_Running | awk '{print $2}' > /dev/null
          SQL= mysql -uroot -p123 -e "show slave status\G" | grep Slave_SQL_Running | awk '{print $2}' /dev/null
          if [ IO==Yes ] && [ SQL==Yes ];then
          echo “IO and SQL 連接成功”
          else
          echo "IO線程和SQL線程連接失敗"
          fi

          以上就是今天分享的全部內(nèi)容;

          對了,如果大家有 Shell 腳本的需求案例,也歡迎在這篇文章進行留言,案例多的話下次就整理個腳本合集給大家分享。

          瀏覽 41
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一级黄色中文电影影视视屏 | 成人淫色网站 | 欧美热线视频高潮 | 一级特黄色| 黄色一级免费片 |