Shell脚本实现监控rsync数据是否传输完


今天有台服务器a要把网站程序全部传输到另外一台服务器b上去,但离下班时间就只有1个小时了,为了准时下班,简单写了个shell脚本来监控是否有传输完,我先在服务器a上看了下网站程序总大小为12G,用du -sm查看也就是11517,服务器也不会有人再传东西上去了,所以我可以放心容量不会再变大了。

系统:centos 5.x

需要的软件:rsync

脚本内容:

#!/bin/bash

file=`du -sm /var/www/vhosts/|awk '{print $1}'`

ps=`ps -C rsync --no-header|wc -l`

if [ "$file" = "11517" ];then

echo "files downloaded!"

else

if [ "$ps" = "1" ];then

kill -9 $(ps aux | grep rsync |grep -v grep| awk '{print $2}')

sleep 1

nohup sh /root/rsync.sh &

else

echo "rsync is running..."

fi

fi

脚本的大概思路就是查看文件夹的大小是否有跟服务器a的大小一样,如果不一样就检查rsync的进程是否有在运行,如果没有运行就kill掉,然后重新执行rsync的下载脚本.

ps:当然这个脚本有点简陋,没有去检测进程状态,如果出现僵尸进程的话,是没有办法处理的.当然我这里就不再修改了,大家可以自己去修改.

Shell脚本实现监控iptables运行状态
最近在调试服务器的iptables,自己做了个定时关iptables,但晚上回家很少开电脑,所以就没法去启动iptables,当然你可能会说,为什么不取消定时关闭iptables,我只

Shell脚本实现监控kingate并自动启动
自己在vps做的kingate服务端,估计最近占用流量太大了,老是被服务商把我vps重启,但kingate这个东西是一旦被强制结束掉,是无法开机启动的,因为要把kingate.pi

Shell脚本实现监控MySQL主从同步
代码如下:#!/bin/bash#checkMySQL_SlaveStatus#crontabtime00:10MYSQLPORT=`netstat-na|grep"LISTEN"|grep"3306"|awk-F[:""]+'{print$4}'`MYSQLIP=`ifconfigeth0|grep"inetaddr"|awk-F[:""]+'{print$4}'`STATU