萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux使用shell腳本監控rsync文件傳輸的完整性

Linux使用shell腳本監控rsync文件傳輸的完整性

  Linux系統在使用rsync傳輸大文件的時候,由於本人不在身邊,無法保證文件是否完整傳輸,這時可以編寫一個shell腳本來監控rsync是否傳輸完數據,以確保文件傳輸到一半時中斷卻不知道。

Linux使用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文件傳輸的完整性,如果檢測到未傳完可繼續上傳。

copyright © 萬盛學電腦網 all rights reserved