Linux使用shell腳本監(jiān)控rsync文件傳輸?shù)耐暾?/h1>
發(fā)表時(shí)間:2023-08-05 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]Linux系統(tǒng)在使用rsync傳輸大文件的時(shí)候,由于本人不在身邊,無法保證文件是否完整傳輸,這時(shí)可以編寫一個(gè)shell腳本來監(jiān)控rsync是否傳輸完數(shù)據(jù),以確保文件傳輸?shù)揭话霑r(shí)中斷卻不知道。今天有臺(tái)...
Linux系統(tǒng)在使用rsync傳輸大文件的時(shí)候,由于本人不在身邊,無法保證文件是否完整傳輸,這時(shí)可以編寫一個(gè)shell腳本來監(jiān)控rsync是否傳輸完數(shù)據(jù),以確保文件傳輸?shù)揭话霑r(shí)中斷卻不知道。
今天有臺(tái)服務(wù)器a要把網(wǎng)站程序全部傳輸?shù)搅硗庖慌_(tái)服務(wù)器b上去,但離下班時(shí)間就只有1個(gè)小時(shí)了,為了準(zhǔn)時(shí)下班,簡單寫了個(gè)shell腳本來監(jiān)控是否有傳輸完。
系統(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
腳本的大概思路就是查看文件夾的大小是否有跟服務(wù)器a的大小一樣,如果不一樣就檢查rsync的進(jìn)程是否有在運(yùn)行,如果沒有運(yùn)行就kill掉,然后重新執(zhí)行rsync的下載腳本。
ps:當(dāng)然這個(gè)腳本有點(diǎn)簡陋,沒有去檢測(cè)進(jìn)程狀態(tài),如果出現(xiàn)僵尸進(jìn)程的話,是沒有辦法處理的。
上面就是Linux使用shell腳本監(jiān)控rsync文件傳輸?shù)耐暾裕绻麢z測(cè)到未傳完可繼續(xù)上傳。
Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng)