1. 程式人生 > >SHELL訓練營--day12_shell練習

SHELL訓練營--day12_shell練習

# 判斷本機80埠,未開則重啟服務。
#!/bin/bash
[email protected]

while:
do
    n=`netstat -lntp|grep ':80 '|wc -l`
    # m=`nmap -p 80 127.0.0.1 |grep '80/tcp|awk '{print $2}'`
    if [ $n -eq 0 ]
    # if [ m == "closed" ]
    then
        /usr/local/apache/bin/apachectl -k restart 2>/tmp/apache.err
        pn=`pgrep -l httpd|wc -l`
        if [ $pn -eq 0 ]
        then
            python mail.py $m "80埠重啟失敗" “head -1 /tmp/apache.err”
        else
            python mail.py $m "80埠關閉" “已重啟HTTP服務”
        fi
    fi
    sleep 30
done

#備份資料庫,本地備份一週,遠端拷貝並備份一個月。
#!/bin/bash
d1=`date +%w`
d2=`date +%d`

local_backdir=/bak/mysql
remote_bakdir=192.168.128.2::backup

exec 1> /tmp/mysqlbak.log 2>/tmp/mysqlbak.err
echo "mysql bakcup begin at `date`"
mysqldump -uroot -pxxxx discz> $local_backdir/discuz.sql.$d1
rsync -za $local_backdir.sql.$d1 $remote_bakdir/discuz.sql.$d2
echo "mysql backup end at `date`"

#判斷本地網路服務是否502,是則重啟php-fpm服務。
#!/bin/bash
log=/data/log/access.log
while:
do 
    502_n=`tail -n 300 $log|grep -c ' 502 '`
    if [ -z "$502_n" ]
    then 
        exit
    fi

    if [ $502_n -gt 100 ]
    then
        /etc/init.d/php-fpm restart >/dev/null 2>/tmp/php-fpm.err
        fpm_p_n=`pgrep -l php-fpm|wc -l`
        if [ $fpm_p_n -eq 0 ]
        then
            python mail.py 
[email protected]
"php-fpm重啟失敗" "head -1 /tmp/php-fpm.err" fi fi sleep 10 done # 文字文件 前5行刪除 含字母行,6~10行刪除字母 #!/bin/bash sed -n '1,5'p 1.txt |sed '/[a-zA-Z]/d' > 2.txt sed -n '1,5'd 1.txt |sed '1,5s/[a-zA-Z]//g' >>2.txt # 找例句中單詞字母數小於6的單詞 # Bash also interprets a number of multi-character options. #!/bin/bash c="Bash also interprets a number of multi-character options." n=`echo $c|awk -F '[ +-. ]' '{print NF}'` for ((i=1;i<$n;i++)) do l=`echo $c|awk -F '[ +-. ]' -v j=$i 'print $j}'|wc -L` if [ $l -lt 6 ] then echo $c|awk -F '[ +-. ]' -v j=$i 'print $j}' fi done