Linux 檔案同步,AP主機程式保持一致
這時候就可以用 rsync 的指令,快速的把不相同的檔案複製到另一台主機上,權限和檔案屬性也不會改變。
rsync 的指令就不加以敘述,請參考其他的網站的說明。
同步指令如下:
rsync -av -e ssh root@192.168.1.100:/u1/topprod /u1
命令的說明是用 ssh 以 root 帳號登入到 192.168.1.100 主機,然後將 /u1/topprod / 目錄的所有檔案同步到此主機的 /u1 目錄。
記得目的端就不要再加上 topprod 不然會建立新的資料夾。
因為不同主機 IP 位置不同,所以必須排除 tiptop_env 檔案,所以再加上 --exclude 後面加上相對的路徑名稱。
不能加上絕對的路徑,會沒辦法排除。
rsync -av -e ssh --exclude tiptop/bin/tiptop_env root@192.168.1.100:/u1/topprod /u1
再來就輸入來源主機的 root 的密碼就開始進行檔案同步。
如果檔案很多的話,需建立 list 檔來排除。
建立 vi /root/sync2.list 檔,排除以下的檔案。
tiptop/bin/tiptop_env
tiptop/lib/4gl/cl_user.4gl
tiptop/lib/42m/lib_cl_user.42m
tiptop/lib/42m/lib_cl_user.4gl
tiptop/lib/42m/lib.42x
然後再加上 --exclude-from 參數來排除指定的 list 檔案,
rsync -av -e ssh --exclude-from=/root/sync2.list root@192.168.1.100:/u1/topprod /u1
如果希望能夠排程的同步檔案,必須要先讓 ssh 不需要密碼就可以登入。
在目的主機 /root 目錄建立 .ssh 的資料夾, mkdir /root/.ssh 。
到 .ssh 目錄執行 ssh-keygen -d ,會產生二個檔案 id_dsa 和 id_dsa.pub 。
然後再到來源主機,一樣建立相同的資料夾 /root/.ssh 。
將 id_dsa.pub 檔案傳送到來源主機,並更名為 authorized_keys2 。
執行:scp id_dsa.pub 192.168.1.100:/root/.ssh/authorized_keys2
測試看看是否不需輸入密碼:ssh root@192.168.1.100
如果還是會跳出密碼的驗証,請修改 authorized_keys2 權限改為 640 (chmod 640 authorized_keys2 )
再來就是建立一個檔名為 sync2 批次檔。
vi /root/sync2
rsync -av -e ssh --exclude-from=/root/sync2.list root@192.168.1.100:/u1/topprod /u1
檔案權限改為 700 (chmod 700 sync2),可執行檔。
檔案權限改為 700 (chmod 700 sync2),可執行檔。
執行看看是否成功:./sync2
再來就是加到 cron job 每 5 分鐘同步一次。
執行 crontab -e 編輯排程檔:
加上:*/5 * * * * /root/sync2
這樣每 5 分鐘就會將來源主機和目的主機有差異的檔案進行複製的動作。
這樣AP主機的程式就會保持一致。
沒有留言:
張貼留言