rsync是類unix系統下的數據鏡像備份工具——remote sync。一款快速增量備份工具 Remote Sync,遠程同步 支持本地複製,或者與其餘SSH、rsync主機同步。咱們先來了解下rsync的語法吧,而後在配置rsync+ssh+crontab,實現自動化備份。服務器
yum install rsync -y #安裝服務ssh
本地目錄同步(我的認爲本地同步仍是cp實用)ide
rsync -avz /tang /home #將/tang目錄下的文件複製到/home中,參數說明看下面。工具
實驗環境:測試
因爲我想把實驗錄成gif效果,因此裝了個圖像界面,左邊是主服務器,右邊是ssh遠程備份服務器。spa
把主服務器的 /tang/ 目錄 備份到備份服務器的 /home中,備份服務器的IP爲:192.168.23.353d
rsync -avz /tang/ root@192.168.23.35:/home/ #把本地/tang/目錄備份到遠程備份服務器的/home目錄下unix
假如主服務器和備份服務器都想保持一致,能夠加上 --delete,讓備份服務器同步主服務器,有多餘的就刪除。 左邊是主服務器,右邊是ssh遠程備份服務器。orm
rsync --delete -avz /tang/ root@192.168.23.35:/home/
blog
同步指定的文件夾名。這裏是以b開頭的文件夾都匹配
rsync -avz --include 'b*' --exclude '*' /tang root@192.168.23.35:/home
解釋:--include是包括的意思。 --exclude是排除的意思,*表明前面的(左鄰)字符有0個或0個以上。
若是想要準確的同步一個文件夾,--include ‘這裏是文件夾的名字,後面不加*號鍵’。
左邊是主服務器,右邊是ssh遠程備份服務器。
-a, -權限的屬性不變
-v, -詳細模式輸出
-z, -傳輸時進行壓縮處理
-e, --rsh=COMMAND 指定使用rsh、ssh方式進行數據同步
基本的操做上面應該都演示了,相信你應該知道每次同步都要輸入備份服務器的密碼,如今來配置ssh免密碼登陸,而後在 crontab -e 中 寫個腳本就能夠自動化執行了。實驗以下:
在主服務器上生成密鑰
ssh-keygen #(直接選擇回車,都選擇默認就行)
使用ssh-copy-id將公匙發送到備份服務器
ssh-copy-id 192.168.23.35
而後再測試下,遠程登陸是否要密碼,不用就OK!
手動測試同步是否須要輸入密碼
rsync -avz -e ssh /tang root@192.168.23.35:/home
ssh 免密碼登陸OK,如今咱們把這句寫入一個腳本里面
echo "rsync -avz -e ssh /tang root@192.168.23.35:/home " > /etc/tang.sh
crontab -e #編寫定時執行任務,每一個小時的第五分鐘執行一次。
5 * * * * sh /etc/tang.sh
* * * * * sh /etc/tang.sh
解釋:
第1列表示分鐘1~59 每分鐘用*或者 */1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
以上實驗配置完畢,