今天有臺服務器a要把網(wǎng)站程序全部傳輸?shù)搅硗庖慌_服務器b上去,但離下班時間就只有1個小時了,為了準時下班,簡單寫了個shell腳本來監(jiān)控是否有傳輸完,我先在服務器a上看了下網(wǎng)站程序總大小為12G,用du -sm查看也就是11517,服務器也不會有人再傳東西上去了,所以我可以放心容量不會再變大了。
系統(tǒng):centos 5.x
需要的軟件:rsync
腳本內(nèi)容:
代碼如下:
#!/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掉,然后重新執(zhí)行rsync的下載腳本.
ps:當然這個腳本有點簡陋,沒有去檢測進程狀態(tài),如果出現(xiàn)僵尸進程的話,是沒有辦法處理的.當然我這里就不再修改了,大家可以自己去修改.
更多信息請查看IT技術專欄