介绍
本篇内容介绍了“怎么用Shell脚本监控rsync数据是否传输完”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
今天有台服务器一个要把网站程序全部传输到另外一台服务器b上的去,但离下班时间就只有1个小时了,为了准时下班,简单写了个壳脚本来监控是否有传输完,我先在服务器一个上看了下网站程序总大小为12克,用杜sm查看也就11517年是服务器也不会有人再传东西上去了,所以我可以放心容量不会再变大了。
系统:centos 5。x
需要的软件:rsync
脚本内容:
代码如下:
# !/bin/bash 文件=' du -sm /var/www/vhost/| awk & # 39; {print 1美元}& # 39;” ps=' ps -C  rsync ——没有标题| wc - l ' if [,“file"美元,=,“11517”,); echo “files 下载!“ 其他的 if [,“ps"美元,=,“1“,); kill 9, $ (ps aux  |, grep rsync | grep -v grep |, awk & # 39; {print $ 2} & # 39;) sleep 1 nohup sh /根/rsync.sh 及 其他的 echo “rsync is 运行……“ fi fi
脚本的大概思路就是查看文件夹的大小是否有跟服务器一个的大小一样,如果不一样就检查rsync的进程是否有在运行,如果没有运行就消灭掉,然后重新执行rsync的下载脚本。
ps:当然这个脚本有点简陋,没有去检测进程状态,如果出现僵尸进程的话,是没有办法处理的。当然我这里就不再修改了,大家可以自己去修改。