rsync配置與自動化執行

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中,參數說明看下面。工具

wKiom1lQzPeyMkWcAACStRtFdtQ135.gif


實驗環境:測試

因爲我想把實驗錄成gif效果,因此裝了個圖像界面,左邊是主服務器,右邊是ssh遠程備份服務器。spa

把主服務器的  /tang/  目錄 備份到備份服務器的 /home中,備份服務器的IP爲:192.168.23.353d

rsync -avz /tang/ root@192.168.23.35:/home/        #把本地/tang/目錄備份到遠程備份服務器的/home目錄下unix

wKioL1lRusuzVIPfAAoPuk9OX-A567.gif



假如主服務器和備份服務器都想保持一致,能夠加上 --delete,讓備份服務器同步主服務器,有多餘的就刪除。  左邊是主服務器,右邊是ssh遠程備份服務器。orm

rsync --delete -avz /tang/ root@192.168.23.35:/home/
blog

wKiom1lRvW-h1QckAAW4ZGHSbu4023.gif


同步指定的文件夾名。這裏是以b開頭的文件夾都匹配

rsync -avz --include 'b*' --exclude '*' /tang root@192.168.23.35:/home   

解釋:--include是包括的意思。 --exclude是排除的意思,*表明前面的(左鄰)字符有0個或0個以上。

若是想要準確的同步一個文件夾,--include這裏是文件夾的名字,後面不加*號鍵。 

左邊是主服務器,右邊是ssh遠程備份服務器。

wKioL1lSM-Txexc9AAdk-tZkGhI043.gif



-a, -權限的屬性不變

-v, -詳細模式輸出

-z, -傳輸時進行壓縮處理

-e, --rsh=COMMAND 指定使用rsh、ssh方式進行數據同步


基本的操做上面應該都演示了,相信你應該知道每次同步都要輸入備份服務器的密碼,如今來配置ssh免密碼登陸,而後在 crontab -e 中 寫個腳本就能夠自動化執行了。實驗以下:


在主服務器上生成密鑰

ssh-keygen            #(直接選擇回車,都選擇默認就行)


使用ssh-copy-id將公匙發送到備份服務器

ssh-copy-id 192.168.23.35


而後再測試下,遠程登陸是否要密碼,不用就OK!

wKiom1lSQh2jpBYnAABM_I63U6Y570.jpg


手動測試同步是否須要輸入密碼

rsync -avz -e ssh /tang root@192.168.23.35:/home

wKiom1lSQ4LQlfH8AAcWiTW0Q1s525.gif


ssh 免密碼登陸OK,如今咱們把這句寫入一個腳本里面

echo "rsync -avz -e ssh /tang root@192.168.23.35:/home " > /etc/tang.sh


crontab -e            #編寫定時執行任務,每一個小時的第五分鐘執行一次。

5 * * * * sh /etc/tang.sh

wKiom1lSRPDBa1ZoAABBIQw-89Y474.jpg


*  *  *  *  *    sh /etc/tang.sh


解釋:

第1列表示分鐘1~59 每分鐘用*或者 */1表示 

第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天) 






以上實驗配置完畢,

相關文章
相關標籤/搜索