2007年12月3日 星期一

Rsync + SSH 完成遠端備份

.完成單向Trusted SSH Authorized
我要 A (10.0.0.1) 要對 B (192.168.0.1) 做異地備援 ...所以我針對 A 讓它使用SSH連到 B ...不需要輸入密碼...User Root...SSH Version2的版本..首先要先在A(10.0.0.1)產生public/private dsa key pair..

[root@mondeo home]# cd /root/.ssh/
[root@mondeo .ssh]# ssh-keygen -d
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase): <--
此處不打passphrase..下次才不會詢問password
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66 root@mondeo.adj.idv.tw
[root@mondeo .ssh]#

這時會在系統下看到兩個檔案...id_dsaid_dsa.pub 現在要把id_dsa.pub丟到192.168.0.1 並且更名為 authorized_keys2

[root@mondeo .ssh]# scp id_dsa.pub 192.168.0.1:/root/.ssh/authorized_keys2
root@192.168.0.1's password:
id_dsa.pub 100% |***************************************************************************| 612 00:00
[root@mondeo .ssh]#

現在您可以執行ssh 192.168.0.1 看看能否登入而不需要輸入密碼...

2.使用rsync Remote sync

rsync特性簡介 :

rsyncunix-like系統下的數據鏡像備份工具,從命名上就可以看出來了remote sync。它的特性如下:

1、可以鏡像保存整個目錄樹和文件系統。
2
、可以很容易做到保持原來文件的權限、時間等等。
3
、無須特殊權限即可安裝。
4
、優化的流程,文件傳輸效率高。
5
、可以使用rcpssh等方式來傳輸文件,當然也可以通過直接的socket連接。
6
、支持匿名傳輸。

首先要先對B(192.168.0.1)RsyncServer on起來...

[root@linux /]#chkconfig --list rsync
rsync off
[root@linux /]#chkconfig rsync on

現在我先在A(10.0.0.1)上建一個 Backup directory...然後對B(192.168.0.1)mysqlhtml的目錄做異地備援...偶寫一個簡單的script如下:

[root@mondeo /]# mkdir backup
[root@mondeo backup]#vi sync

rsync -avRz /src/ /home/test #Local Backup

rsync -arRHz --progress -e ssh 10.110.131.225:/src/ /home/2006.04.06

# Remote Backup


rsync -avlR --delete -e ssh 192.168.0.1:/var/lib/mysql /backup/
rsync -avlR --delete -e ssh 192.168.0.1:/var/www/html /backup/

[root@mondeo backup]#chmod 700 sync

參數意義如下﹕

-a, --archive
It is a quick way of saying you want recursion and want to preserve almost everything.
-v, --verbose
This option increases the amount of information you are given during the transfer.
-l, --links
When symlinks are encountered, recreate the symlink on the destination.
-R, --relative
Use relative paths.
保留相對路徑...才不會讓子目錄跟 parent 擠在同一層...
--delete
是指如果Server端刪除了一文件,那客戶端也相應把這一文件刪除,保持真正的一致。
-e ssh
建立起加密的連接。

參數的使用因人而異...您可以man rsync來使用更多的參數...

測試看看:

[root@mondeo backup]# ./sync

receiving file list ... done
.
.
.
done
wrote 16 bytes read 107 bytes 82.00 bytes/sec
total size is 0 speedup is 0.00
receiving file list ... done
.
.
.
done
wrote 16 bytes read 921 bytes 624.67 bytes/sec
total size is 308331 speedup is 329.06
[root@mondeo backup]#

看到沒詢問密碼....以及有把檔案copy過來就沒問題囉....當然你可以把遠端的資料做個變動...看是否真有同步啦....

3.使用crontab 來做自動排程

現在設好之後...我希望每天的00...夜深人靜的時後再來幫我做sync....當然您想要多久做 sync 看個人需求囉...

[root@mondeo backup]# crontab -e

0 0 * * * /backup/sync


沒有留言:

 Ubuntu has a mechanism, that is, the installed network card (NIC) will be renamed to another name when the system is booted. Although there...