Linux体系正在运用rsync传输年夜文件的时分,因为自己没有正在身旁,无奈包管文件能否完好传输,那时能够编写一个shell剧本去监控rsync能否传输完数据,以确保文件传输到一半时外断殊不知叙。
昨天有台效劳器a要把网站步伐全副传输到别的一台效劳器b上来,但离上班工夫便只要1个小时了,为了准时上班,简略写了个shell剧本去监控能否有传输完。
体系: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:固然那个剧本有点粗陋,出有来检测入程形态,若是呈现僵尸入程的话,是出有法子解决的。
下面便是Linux运用shell剧本监控rsync文件传输的完好性,若是检测到已传完否接续上传。
相关文章