實戰2:
使用ssh密鑰實現無交互備份。做成腳本,將xuegod-63上的數據,定期備份到xuegod-64上。
生成公私鑰並拷貝
[root@xuegod-64 ~]# ssh-keygen #產生主機的公鑰和私鑰
[root@xuegod-64 ~]# ssh-copy-id [email protected] #拷貝自己的公鑰到要登錄的服務器1.63上。
測試,不輸密碼直接連接:
[root@xuegod-64 ~]# ssh [email protected] #測試登陸
[rget1@xuegod-63 ~]$ exit #成功的登陸,且不需要輸入密碼
測試,不輸密碼直接登錄和備份:
[root@xuegod-64 ~]# ls /web-back/ #先查看到在web-back目錄下有grub這個目錄
Grub
[root@xuegod-64 ~]# rm -rf /web-back/* #刪除這個目錄
[root@xuegod-64 ~]# rsync -azP --delete [email protected]:/var/www/html/ /web-back/
#將1.63下/var/www/html/下的文件備份到本機1.64下的/web-back/目錄下,我們可以看到
遠程備份是不需要任何密碼的!編寫備份腳本:
[root@xuegod-64 ~]# vim /root/rsync-ssh-get-wwwroot.sh #編寫一個腳本將1.63下/var/www/html/下的文件備份到本機1.64下的/web-back/目錄下
#! /bin/bash
rsync -azP --delete [email protected]:/var/www/html/ /web-back/
#在這裏,就把P參數去掉了,因爲是後期執行備份,看不見所備份的進度。
增加權限並查看腳本
[root@xuegod-64 ~]# chmod +x rsync-ssh-get-wwwroot.sh #給腳本就一個課執行的權限
[root@xuegod-64 ~]# cat /root/rsync-ssh-get-wwwroot.sh #查看所編寫的腳本
#! /bin/bash
rsync -azP --delete [email protected]:/var/www/html/ /web-back/
測試腳本:
[root@xuegod-64 ~]# rm -rf /web-back/* #先刪除這個目錄下的所有文件
[root@xuegod-64 ~]# ls /web-back/ #查看目錄,目錄下什麼都沒有
[root@xuegod-64 ~]# ./rsync-ssh-get-wwwroot.sh #運行腳本,可以看到那些文件再一次過來
grub/device.map
63 100% 61.52kB/s 0:00:00 (xfer#1, to-check=15/18)
grub/e2fs_stage1_5
13380 100% 12.76MB/s 0:00:00 (xfer#2, to-check=14/18)
……
[root@xuegod-64 ~]# ls /web-back/ #可以看到,剛纔的文件又出來了
Grub
定期增量備份:
[root@xuegod-64 ~]# crontab –e #腳本以生成,爲了以後方便使用,所以創建一個計劃任務
01 3 * /root/rsync-ssh-get-wwwroot.sh &
#每天在3點1分的時候 進行備份
備份完後,再在xuegod-64上打包
[root@xuegod-64 ~]# tar cvzf aaa.tar.gz /web-back/