1. 程式人生 > >Shell指令碼實現監控rsync資料是否傳輸完

Shell指令碼實現監控rsync資料是否傳輸完

今天有臺伺服器a要把網站程式全部傳輸到另外一臺伺服器b上去,但離下班時間就只有1個小時了,為了準時下班,簡單寫了個shell指令碼來監控是否有傳輸完,我先在伺服器a上看了下網站程式總大小為12G,用du -sm檢視也就是11517,伺服器也不會有人再傳東西上去了,所以我可以放心容量不會再變大了。

需要的軟體: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的下載指令碼.