close

Fedora Centos rsync 異地備援 心得筆記

主機的備份一直以來都是個重要的課題
在這裡使用 rsync 套件,來作兩台電腦的資料備份

環境說明 :
server (需要備份的主機.目前運作中的機器) :
O/S:Redhat 9.0
ip : 192.168.0.2
user : root
欲備份目錄 : /test (實驗用.預設沒有此目錄請自行建立)

client (遠端存放備份的機器.不提供服務只備份資料) :
O/S:Redhat 9.0
ip : 192.168.0.253
user : root
存放資料目錄 : /test (實驗用.預設沒有此目錄請自行建立)

分兩個部分來做
-------------------------------------------------------------------------------------------------
server 部分:

1.首先檢查有沒有rsync 套件 (Redhat 預設都會裝)
#rpm -q rsync
rsync-2.5.5-4

2.開啟rsync的服務並檢查狀態
#chkconfig rsync on
#chkconfig rsync --list
rsync 開啟

------------------------------------------------------------------------------------------------
client 部分:

為了使用SSH加密傳輸且不需要輸入密碼
1.#cd /root/.ssh (進入到/root/.ssh/ 目錄下)
2.#ssh-keygen -d (產生ssh的公鑰和私鑰)
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa): (產生到何處.按Enter 就可以了)
Enter passphrase (empty for no passphrase): (要不要設定passwd.避免問我們按Enter 就可以了)
Enter same passphrase again: (再按一次Enter)
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.

此時目錄下會產生公鑰id_dsa.pub和私鑰id_dsa
現在要把id_dsa.pub丟到192.168.0.2 並且更名為 authorized_keys

3.#scp id_dsa.pub 192.168.0.2:/root/.ssh/authorized_keys
root@192.168.0.2
password:
id_dsa.pub 100% ***************************** 613 00:00

試試看 ssh 到server 應該就不用輸入密碼了

4.#ssh 192.168.0.2
#exit (記得離開)

5.#cd /usr/local/bin (要寫一個shell script 在 /usr/local/bin下 故先到此目錄下)
#vi sync
rsync -avlR --delete -e ssh 192.168.0.2:/test /
(把192.168.0.2下面的 /test 目錄 備份到本機上的 / , 因為備份會產生test這個資料夾.所以本機上設定為/)
(讓/test => /test 而不是 /test => /test/test)

參數意義如下﹕
-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
建立起加密的連接。

6.#chmod 700 sync
只讓root 可以使用

7.#./sync (執行sync這個script.........此時你就會發現兩台電腦的/test是同步的呢^_^)

-----------------------------------------------------------------------------------------------

[root@linux ~]# rsync [-avrlptgoD] [-e ssh] [user@host:/dir] [/local/path]

參數:
-v :觀察模式,可以列出更多的資訊;
-q :與 -v  相反,安靜模式,輸出的資訊比較少;
-r :遞迴複製!可以針對『目錄』來處理!很重要!
-u :僅更新 (update),不會覆蓋目標的新檔案;
-l :複製連結檔的屬性,而非連結的目標原始檔案內容;
-p :複製時,連同屬性 (permission) 也保存不變!
-g :保存原始檔案的擁有群組;
-o :保存原始檔案的擁有人;
-D :保存原始檔案的裝置屬性 (device)
-t :保存原始檔案的時間參數;
-I :忽略更新時間 (mtime) 的屬性,檔案比對上會比較快速;
-z :加上壓縮的參數!
-e :使用的通道協定,例如使用 ssh 通道,則 -e ssh
-a :相當於 -rlptgoD ,所以這個 -a 是最常用的參數了!

範例一:將 /etc 的資料備份到 /tmp 底下:
[root@linux ~]# rsync -av /etc /tmp

....前面輸出省略....
sent 23007335 bytes  received 32280 bytes  5119914.44 bytes/sec
total size is 22870014  speedup is 0.99
# 第一次運作時會花比較久的時間,因為首次建立嘛!如果再次備份呢?

[root@linux ~]# rsync -av /etc /tmp

building file list ... done
sent 77105 bytes  received 20 bytes  154250.00 bytes/sec
total size is 22870014  speedup is 296.53
# 瞧!立刻就跑完了!傳輸的資料也很少!因為再次比對,僅有差異的檔案會被複製。

範例二:利用 dmtsai 的身份,將 rsh.server 使用者家目錄複製到 /tmp
[root@linux ~]# rsync -av -e ssh dmtsai@rsh.server:~ /tmp

The authenticity of host 'rsh.server (192.168.1.2)' can't be established.
RSA key fingerprint is 29:b8:a9:32:ea:d8:ff:97:6c:42:3b:aa:11:ab:55:dd.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rsh.server' (RSA) to the list of known hosts.
dmtsai@rsh.server's password:
receiving file list ... done
....檔案輸出省略....
sent 8436 bytes  received 43224862 bytes  2789245.03 bytes/sec
total size is 43189031  speedup is 1.00

[root@linux ~]# ll -d /tmp/dmtsai
drwxr-xr-x  22 dmtsai dmtsai  4096 Sep 18 23:25 /tmp/dmtsai

---------------------------------------------------------------------------------------------
參考文件:

http://www.adj.idv.tw/server/linux_rsync.php
http://www.fanqiang.com/a6/b7/20010908/1305001258_b.html
http://phorum.study-area.org/viewtopic.php?t=15553&highlight=rsync
http://linux.tnc.edu.tw/techdoc/rsync.htm

arrow
arrow
    全站熱搜

    linux988 發表在 痞客邦 留言(0) 人氣()