rsync+ssh同步備份檔案
定期對web程式碼或重要的檔案做同步異地伺服器備份,防止伺服器故障嚴重磁碟損壞時檔案丟失的問題。
備份伺服器:192.168.200.134
目標伺服器:192.168.201.65
rsync同步命令:
rsync -avz -e 'ssh -p <ssh埠,預設是22>' <本地待備份目錄> 192.168.200.134:<目標目錄>
會提示需要輸入遠端伺服器登陸賬號的密碼才可以執行下去,為了免密碼輸入而可以定期自動讓其執行,需要配置ssh免密登陸方式;
備份伺服器本地執行 ssh-keygen -t rsa 命令,生成ssh rsa私鑰 id_rsa 和公鑰id_rsa.pub
然後copy id_rsa.pub到目標伺服器賬號home目錄下得.ssh目錄,如果沒有請建立.ssh目錄;
然後在目標機賬號home目錄下得.ssh目錄,執行
cat id_rsa.pub > authorized_keys
chmod 600 authorized_keys
完成操作後,在備份伺服器192.168.201.65上嘗試執行ssh 登陸操作看是否不再需要密碼即可登陸:
ssh -p <ssh埠,預設22> 192.168.200.134
:?:如果不需要提示輸入密碼即可登陸到134伺服器,則表示完成ssh免密碼登陸功能。
然後在65伺服器上執行rsync同步檔案命令也不再需要提示輸入密碼即可同步完畢。
最後,我們再新增crontab定時任務,讓rsync同步備份檔案操作每天23點執行一次備份:
crontab -e
在最後面新增一行定時任務設定:
0 23 * * * rsync -avz -e 'ssh -p <ssh埠,預設是22>' <本地待備份目錄> 192.168.200.134:<目標目錄> > /dev/null 2>&1