1. 程式人生 > >rsync+inotify 在一臺伺服器上面同步資料

rsync+inotify 在一臺伺服器上面同步資料

1:rsync:負責同步資料
安裝:yun install rsync
usr/bin/rsync  -auvrtzopgP --progress --delete  /usr/local/www/admin/html/ /usr/local/www/web/basic/web/html/


同步/usr/local/www/admin/html/ 到 /usr/local/www/web/basic/web/html/


2:inotify:負責監控資料夾是否有變化
安裝:yum install inotify-tools


/usr/bin/inotifywait -mrq --timefmt '%Y/%m/%d-%H:%M:%S' --format '%T %w %f' -e modify,delete,create,move,attrib /usr/local/www/admin/html/


監控 /usr/local/www/admin/html/ 資料夾裡面的刪除  移動 建立 




3:nohup 使用守護執行緒 




4:編寫shell指令碼  rsync.sh


#!/bin/bash
log_file=/var/log/rsync_client.log
inotify_fun(){
      /usr/bin/inotifywait -mrq --timefmt '%Y/%m/%d-%H:%M:%S' --format '%T %w %f' -e modify,delete,create,move,attrib /usr/local/www/admin/html/ | while read file
        do
       /usr/bin/rsync  -auvrtzopgP --progress --delete /usr/local/www/admin/html/ /usr/local/www/web/basic/web/html/
        done
}


#inotify log
inotify_fun >> ${log_file} 2>&1 &


5:啟動
nohup /usr/local/www/shell/rsync.sh &  回車兩次就ok




6: 停止


ps -aux |grep rsync  檢視程序  然後 kill -9 程序編號
pkill rsync 
pkill inotifywait