rsync 是一個快速增量檔案傳輸工具,它可以用於在同一主機備份內部的備分,我們也可以將它當作不同主機網路備份工具之用。本文主要講述的是如何自架rsync伺服器,以實現檔案傳輸、備份和鏡像。相對tar和wget來說,rsync 也有其自身的優點,例如速度快、安全、高效;
手動的:
首先要建立好兩台伺服器之間的公鑰和金鑰,那樣就不需要每次都輸入密碼,也可以實現自動了。
可以先使用 rpm -qa |grep rsync 查看rsync是否已安裝,軟體下載Rysnc的主頁位址為: http://rsync.samba.org/
本試驗的測試環境(2台,一個服務端,一個客戶端)
rsync服務端的ip:192.168.48.60
rsync客戶端的ip:192.168.48.148
-----------------------------------------------
以下先設定伺服器端:
1. 安裝rsync包
# rpm -q rsync
rsync-2.6.3-1
2. rsync只使用一個設定檔就是/etc/rsyncd.conf 這個檔案一般是沒有的,那就自己建一個好了
# vi /etc/rsyncd.conf
uid = nobody
gid = nobody
max connections = 200
timeout = 600
use chroot = no
read only = yes
pid file=/var/run/rsyncd.pid
host_allow =192.168.48.148 //客戶端的IP位址寫在這裡
#syslog facility = local7
#log file=/var/log/rsyncd.log
#rsync config
#The 'standard' things
[rsync_gmmold] //定義同步的路徑(客戶端用這個關鍵字連結)
path = /home //需要同步的路徑
comment = gmmold //這個暫不知道
3.啟動服務
#/usr/bin/rsync --daemon 最後在server端將rsync以守護程序形式啟動, rsync啟動的端口為873端口
4.加入開機啟動
echo "/usr/bin/rsync --daemon" >> /etc/rc.local
5.檢查rsync時候啟動
# ps -ef | grep rsync
6.停止服務
#kill `cat /var/run/rsyncd.pid`
以下是客戶端的配置:
1. 安裝rsync包
[root@rhel403 old]# rpm -q rsync
rsync-2.6.3-1
2. 與伺服器端同步:
#rsync -ave ssh [email protected]:/home/ /home/ganfic/laji/ //把60機子的/home下的檔案同步備份到/home/ganfic/laji/
自動同步備份:
1. 在tmp下方建造一個b.sh文件
#vi /tmp/b.sh
把以下內容寫到裡面去
#!bin/sh
rsync -ave ssh [email protected]:/home/ /home/ganfic/laji/
:wq
2 第2步就要牽涉到crontab了,在命令列輸入
#crontab -e
然後把* * * * * sh /tmp/b.sh //* * * * *部分代表每一分鐘,然後sh /tmp/b.sh 表示運行b.sh腳本(在下面我再補充說明), -e 使用環境變數EDITOR或RVISUAL指定的編輯器編輯crontab檔。新建立的crontab檔案會放在/var/spool/cron目錄下,檔案名稱就是使用者名,用cd /var/spool/cron後會看到使用者文件,然後用vi root(我是在root使用者下的)就會看到* * * * * sh /tmp/b.sh已經被轉到這裡來了。
這樣就完成了,之後就是看看有沒有運行了,打開日誌文件,日誌文件在#vi /var/log/cron 就會看到有沒有運行了,也可以這樣,在沒有用自動運行之前,我們是用手動操作的,那時也把60的機子的/home目錄下的文件拷了下來,那樣,我們進本機的/home/ganfic/laji文件夾裡就會看到60機子下/home的內容,把這些內容都刪了,然後再過1分鐘看會不會把內容再補上,有的話就是成功了。
Linux 防火牆是用iptables,所以我們至少在伺服器端要讓你所定義的rsync 伺服器連接埠通過,客戶端上也應該讓通過。
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
啟動rsync服務:
/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
$rsync_HOME/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
補充:
rsync 的相關知識:
rsync指令的用法
在設定完rsync伺服器後,就可以從客戶端發出rsync指令來實現各種同步的操作。 rsync有很多功能選項,以下就來介紹常用的選項:
rsync的命令格式可以為:
1. rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
2. rsync [OPTION]... [USER@]HOST:SRC DEST
3. rsync [OPTION]... SRC [SRC]... DEST
4. rsync [OPTION]... [USER@]HOST::SRC [DEST]
5. rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
6. rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]