[rsync實現網站的備份,文件的同步,差異系統的文件的同步,假如是windows的話,需要windows版本cwrsync]
一、什么是rsync
rsync,remote synchronize顧名思意就知道它是一款實現長途同步成果的軟件,它在同步文件的同時,可以保持本來文件的權限、時間、軟硬鏈接等附加信息。 rsync是用 “rsync 算法”提供了一個客戶機和長途文件處事器的文件同步的快速要領,并且可以通過ssh方法來傳輸文件,這樣其保密性也很是好,別的它照舊免費的軟件。
rsync 包羅如下的一些特性:
能更新整個目次和樹和文件系統;
有選擇性的保持標記鏈鏈、硬鏈接、文件屬于、權限、設備以實時間等;
對付安裝來說,無任何非凡權限要求;
對付多個文件來說,內部流水線淘汰文件期待的延時;
能用rsh、ssh 或直接端口做為傳輸入端口;
支持匿名rsync 同步文件,是抱負的鏡像東西;
二、架設rsync處事器
架設rsync 處事器較量簡樸,寫一個設置文件rsyncd.conf 。文件的書寫也是有法則的,我們可以參照rsync.samba.org 上的文檔來做。雖然我們首先要安裝好rsync這個軟件才行;
A、rsync的安裝;
獲取rsync
rysnc的官方網站:http://rsync.samba.org/可以從上面獲得最新的版本。今朝最新版是3.05。雖然,因為rsync是一款如此有用的軟件,所以許多Linux的刊行版本都將它收錄在內了。
軟件包安裝
# sudo apt-get install rsync
注:在debian、ubuntu 等在線安裝要領;
# yum install rsync 注:Fedora、Redhat
等在線安裝要領;
# rpm -ivh rsync
注:Fedora、Redhat 等rpm包安裝要領;
其它Linux刊行版,請用相應的軟件包攬理要領來安裝。
源碼包安裝
tar xvf rsync-xxx.tar.gz
cd rsync-xxx
./configure --prefix=/usr ;make ;make install
注:在用源碼包編譯安裝之前,您得安裝gcc等編譯開具才行;
B、設置文件
rsync的主要有以下三個設置文件rsyncd.conf(主設置文件)、rsyncd.secrets(暗碼文件)、rsyncd.motd(rysnc處事器信息)
處事器設置文件(/etc/rsyncd.conf),該文件默認不存在,請建設它。
詳細步調如下:
#touch /etc/rsyncd.conf
#建設rsyncd.conf,這是rsync處事器的設置文件。
#touch /etc/rsyncd.secrets #建設rsyncd.secrets ,這是用戶暗碼文件。
#chmod 600 /etc/rsyncd/rsyncd.secrets
#將rsyncd.secrets這個暗碼文件的文件屬性設為root擁有, 且權限要設為600, 不然無法備份樂成!
#touch /etc/rsyncd.motd
下一就是我們修改rsyncd.conf和rsyncd.secrets和rsyncd.motd文件的時候了。
設定/etc/rsyncd.conf
rsyncd.conf是rsync處事器主要設置文件。我們先來個簡樸的示例,后頭在具體說明各項浸染。
好比我們要備份處事器上的/home和/opt,在/home中我想把easylife和samba目次解除在外;
# Distributed under the terms of the GNU General Public
License v2
# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help
# This line is required by the /etc/init.d/rsyncd script
pid file = /var/run/rsyncd.pid
port = 873
address = 192.168.1.171
#uid = nobody
#gid = nobody
uid = root
gid = root
use chroot = yes
read only = yes
#limit access to private LANs
hosts allow=192.168.1.0/255.255.255.0
10.0.1.0/255.255.255.0
hosts deny=*
max connections = 5
motd file = /etc/rsyncd.motd
#This will give you a separate log file
#log file = /var/log/rsync.log
#This will log every file transferred - up to 85,000+ per
user, per sync
#transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[rhel4home]
path = /home
list=yes
ignore errors
auth users = root
secrets file = /etc/rsyncd.secrets
comment = This is RHEL 4 data
exclude = easylife/
samba/
[rhel4opt]
path = /opt
list=no
ignore errors
comment = This is RHEL 4 opt
auth users = easylife
secrets file = /etc/rsyncd/rsyncd.secrets
注:關于auth users是必需在處事器上存在的真實的系統用戶,假如你想用多個用戶以,號離隔,好比auth users = easylife,root
設定暗碼文件
暗碼文件名目很簡樸,rsyncd.secrets的內容名目為:
用戶名:暗碼
我們在例子中rsyncd.secrets的內容如下雷同的;在文檔中說,有些系統不支持長暗碼,本身實驗著配置一下吧。
easylife:keer
root:mike
chown root.root rsyncd.secrets #修改屬主
chmod 600 rsyncd.secrets #修改權限