rsync工具簡(jiǎn)介
rysnc是一個(gè)數據鏡像及備份工具,具有可使本地和遠程兩臺主機的文件,目錄之間,快速同步鏡像,遠程數據備份等功能。在同步過(guò)程中,rsync是根據自己獨特的算法,只同步有變化的文件,甚至在一個(gè)文件里只同步有變化的部分,所以可以實(shí)現快速的同步數據的功能。
下面所講的簡(jiǎn)單的rsync同步方法,依賴(lài)于SSH服務(wù)。一般rsync,ssh軟件包都會(huì )默認安裝的。檢查方法:rpm -qa|grep -i rsync
注意:在實(shí)行備份方案前請用其他目錄進(jìn)行測試以防錯誤,切記??!
提示輸入192.168.1.2機器的root用戶(hù)密碼,輸入即可開(kāi)始同步。
參數解釋?zhuān)?/span>
a 等同于 -rlptgoD 歸檔模式,就是保持文件所有屬性、權限不變
S 有效的處理零散文件
v verbose模式
H 保持hard links
上面這個(gè)表示 將本機的/home目錄下所有的文件,同步到192.168.1.2機器的/home目錄下。。
上面紅色標記是源文件位置 藍色標記是目的位置
如果想每次同步之后,兩邊的文件保持一致,需要添加參數--delete,添加這個(gè)參數時(shí),一定要注意測試,否則會(huì )造成嚴重后果,刪除了數據。
上面這條表示,將遠程機器192.168.1.2機器上的/home目錄下所有的文件,同步到本地的/home目錄下,同步的時(shí)候注意源和目的,前面的是源文件位置,后面的目的文件位置
上面的命令,執行的時(shí)候,需要輸入192.168.1.2機器的root用戶(hù)密碼,這樣很煩,可以?xún)膳_機器做個(gè)ssh信任,省去每次輸入密碼,在添加crontab自動(dòng)執行。自動(dòng)同步數據。
下面是2臺主機建立ssh信任
A機器 192.168.1.1
B機器 192.168.1.2
[root@mailsvr ~]# ssh-keygen -t rsa 創(chuàng )建證書(shū)
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
65:4a:68:cc:6c:23:2b:04:1a:3c:ee:d7:af:e7:e3:8d root@mailsvr
驗證一下,ssh登陸到B機,是否不需要輸入密碼,如果不用則建立成功
[root@mailsvr .ssh]# ssh 192.168.1.2
Last login: Fri Jun 6 09:59:28 2008 from 192.168.1.1
[root@mailsvr ~]#
下面是rsync的另一種方法,服務(wù)器端和客戶(hù)端使用。
兩臺機器都需要安裝軟件包,這里不羅嗦了。
服務(wù)器端配置:
rysnc一般是通過(guò)xinetd進(jìn)行啟動(dòng)的。
修改/etc/xinetd.d/rsync,只修改一個(gè)地方
# default: off
# description: The rsync server is a good addition to am ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = yes 修改為disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
接下來(lái)編輯配置文件
[root@mailsvr ~] # cat /etc/rsyncd.conf
uid = root #root用戶(hù)訪(fǎng)問(wèn)
gid = root #root組用戶(hù)訪(fǎng)問(wèn)
use chroot = no #不能使用chroot
max connections = 9 #最大連接數
list = yes #允許列出文件清單
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
hosts allow = 192.168.1.2 #只允許這個(gè)主機訪(fǎng)問(wèn)
[data] #發(fā)布項
path = /home/data/ #發(fā)布的路徑
ignore errors
read only = yes #只讀
auth users = root #認證用戶(hù)為root
secrets file = /etc/sery.pass #密碼文件
------------------------------------------------------------------------------------
下面是密碼文件
[root@mailsvr ~] # cat /etc/sery.pass
root:123456
權限為600
服務(wù)器端配置完成,客戶(hù)端只需要安裝rsync包即可
接下來(lái)創(chuàng )建密碼文件
[root@mailsvr ~] # cat /etc/sery.pass
123456 #這里只需要輸入服務(wù)器端密碼文件中定義的密碼即可。
使用命令開(kāi)始同步
解釋?zhuān)?/div>
--password-file=/etc/sery.pass 這段是密碼文件,如果不加這段,需要手動(dòng)輸入服務(wù)器端定義好的密碼。
如果文件比較大,可以使用nohup將進(jìn)城放在后臺執行,
[root@mailsvr ~] # nohup rsync -aSvH --password-file=/etc/sery.pass root@192.168.1.2::data /home/ >rsync.log &
上面的表示將遠程機器192.168.1.2機器上發(fā)布的data目錄,同步到本地機器的/home/目錄下。