您的位置:首页 > 运维架构 > Shell

SHELL训练营--day12_shell练习

2019-01-04 02:33 976 查看
# 判断本机80端口,未开则重启服务。
#!/bin/bash
m=abc@abc.com

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 112@111.com "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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell