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

猜你喜欢

转载自blog.51cto.com/sincethen/2338542