1 什么是rsync;
rsync is a file transfer program for Unix systems. rsync uses the "rsync algorithm" which provides a very fast method for bringing remote files into sync. It does this by sending just the differences in the files across the link, without requiring that both sets of files are present at one of the ends of the link beforehand.
rsync 是一個(gè)Unix系統(tǒng)下的文件同步和傳輸工具。rsync是用 “rsync 算法”提供了一個(gè)客戶機(jī)和遠(yuǎn)程文件服務(wù)器的文件同步的快速方法。
Some features of rsync include
rsync 包括如下的一些特性:
* can update whole directory trees and filesystems
能更新整個(gè)目錄和樹(shù)和文件系統(tǒng);
* optionally preserves symbolic links, hard links, file ownership, permissions, devices and times
有選擇性的保持符號(hào)鏈鏈、硬鏈接、文件屬于、權(quán)限、設(shè)備以及時(shí)間等;
* requires no special privileges to install
對(duì)于安裝來(lái)說(shuō),無(wú)任何特殊權(quán)限要求;
* internal pipelining reduces latency for multiple files
對(duì)于多個(gè)文件來(lái)說(shuō),內(nèi)部流水線減少文件等待的延時(shí);
* can use rsh, ssh or direct sockets as the transport
能用rsh、ssh 或直接端口做為傳輸入端口;
* supports anonymous rsync which is ideal for mirroring
支持匿名rsync 同步文件,是理想的鏡像工具;
2 rsync 服務(wù)器的理由;
rsync 服務(wù)器架設(shè)比較簡(jiǎn)單,可能我們安裝好rsync后,并沒(méi)有發(fā)現(xiàn)配置文件,以及rsync服務(wù)器啟動(dòng)程序,因?yàn)槊總€(gè)管理員可能對(duì)rsync 用途不一樣,所以一般的發(fā)行版只是安裝好軟件就完事了,讓管理員來(lái)根據(jù)自己的用途和方向來(lái)自己架設(shè)rsync服務(wù)器;因?yàn)檫@個(gè)rsync應(yīng)用比較廣,能在同一臺(tái)主機(jī)進(jìn)行備份工作,還能在不同主機(jī)之間進(jìn)行工作。在不同主機(jī)之間的進(jìn)行備份,是必須架設(shè)rsync 服務(wù)器的。
以我的觀點(diǎn)上看,如果在同一臺(tái)主機(jī)進(jìn)行文件的備分,用復(fù)制工具cp就好了。沒(méi)必要用rsync 這么相對(duì)復(fù)雜的工具,cp也簡(jiǎn)單易用,當(dāng)然這僅僅是個(gè)人觀點(diǎn);
對(duì)于重量級(jí)服務(wù)器來(lái)說(shuō),應(yīng)該有網(wǎng)絡(luò)備份服務(wù)器來(lái)說(shuō),只有本地備份還是不夠的,最好還是有網(wǎng)絡(luò)備份主機(jī),這樣數(shù)據(jù)的安全才有保證。畢竟數(shù)據(jù)放在服務(wù)器本地上還是不太安全,比如磁盤壞掉、被駭客攻入服務(wù)器刪除數(shù)據(jù)。其實(shí)服務(wù)器本身價(jià)值并不大,重要的是數(shù)據(jù)的價(jià)值。
另外對(duì)于大量文件從一臺(tái)服務(wù)器上遷移到另一臺(tái)服務(wù)器上,rsync 的確是一個(gè)不可不用傳輸工具。公司有一臺(tái)文件服務(wù)器,配置是CPU Intel Celeon 333Mhz,內(nèi)存128M,硬盤IDE 80Gx3=240G,里面僅是第一個(gè)硬盤的12G的分區(qū)安裝系統(tǒng),用了256M做為交換分區(qū),其它的空間我都用來(lái)存數(shù)據(jù),通過(guò)LVM卷來(lái)管理磁盤空間,我分了一個(gè) 180G的空間給數(shù)據(jù)存放,當(dāng)時(shí)數(shù)據(jù)存儲(chǔ)容量已經(jīng)達(dá)到了160多G。當(dāng)時(shí)的情況是服務(wù)器空間有限,沒(méi)做本地備份。更不可能新增硬盤上去,因?yàn)檫@臺(tái)機(jī)器沒(méi)做RAID,硬盤壞掉一個(gè),數(shù)據(jù)會(huì)全毀掉,安全性沒(méi)有一點(diǎn)保障。在這種情況下,為了保證數(shù)據(jù)的安全性,我被迫做了一臺(tái)帶有Raid5支持的文件服務(wù)器。在選擇如何把數(shù)據(jù)文件完整的傳輸?shù)叫路?wù)器上,我想到了很多的工具,最后想到了rsync 。我花了十分鐘架設(shè)并調(diào)試了rsync ,然后就開(kāi)工文件傳輸,因?yàn)槲募?wù)器上的文件太多,老的文件服務(wù)器配置又低,大約花了兩三天吧才得以把所有文件傳輸完畢。
3 架設(shè)rsync服務(wù)器過(guò)程;
架設(shè)rsync 服務(wù)器比較簡(jiǎn)單,寫一個(gè)配置文件rsyncd.conf 。文件的書寫也是有規(guī)則的,我們可以參照rsync. 上的文檔來(lái)做;當(dāng)然我們首先要安裝好rsync 這個(gè)軟件才行;
3.1 rsync的安裝;
軟件安裝過(guò)于簡(jiǎn)單,現(xiàn)在Linux各大發(fā)行版都提供這個(gè)軟件包,當(dāng)然您也可以自己編譯安裝,在目前的情況下,我看沒(méi)太大的必要;
[root@linuxsir:beinan]$ sudo apt-get install rsync 注:在debian、ubuntu 等在線安裝方法;
[root@linuxsir:beinan]# slackpkg install rsync 注:Slackware 軟件包在線安裝;
[root@linuxsir:beinan]# yum install rsync 注:Fedora、Redhat 等系統(tǒng)安裝方法;
其它Linux發(fā)行版,請(qǐng)用相應(yīng)的軟件包管理方法來(lái)安裝;如果是源碼包,也就是用下面的辦法;
[root@linuxsir:/home/beinan]# tar xvf sync-xxxx.tar.gz 或sync-xxx.tar.bz2
[root@linuxsir:/home/beinan]# cd sync-xxx
[root@linuxsir:/home/beinan/sync-xxx]# ./configure --prefix=/usr ;make ;make install 注:在用源碼包編譯安裝之前,您得安裝gcc等編譯開(kāi)具才行;
3.2 rsync服務(wù)器的配置文件rsyncd.conf ;
我們可以參照 rsyncd.conf.html。具體步驟如下;
[root@linuxsir:~]#mkdir /etc/rsyncd 注:在/etc目錄下創(chuàng)建一個(gè)rsyncd的目錄,我們用來(lái)存放rsyncd.conf 和rsyncd.secrets文件;
[root@linuxsir:~]#touch /etc/rsyncd/rsyncd.conf 注:創(chuàng)建rsyncd.conf ,這是rsync服務(wù)器的配置文件;
[root@linuxsir:~]#touch /etc/rsyncd/rsyncd.secrets 注:創(chuàng)建rsyncd.secrets ,這是用戶密碼文件;
[root@linuxsir:~]#chmod 600 /etc/rsyncd/rsyncd.secrets 注:為了密碼的安全性,我們把權(quán)限設(shè)為600;
[root@linuxsir:~]#ls -lh /etc/rsyncd/rsyncd.secrets
-rw------- 1 root root 14 2007-07-15 10:21 /etc/rsyncd/rsyncd.secrets
[root@linuxsir:~]#touch /etc/rsyncd/rsyncd.motd
下一就是我們修改 rsyncd.conf 和rsyncd.secrets 和rsyncd.motd 文件的時(shí)候了;
rsyncd.conf 是rsync服務(wù)器主要配置文件,我們來(lái)個(gè)簡(jiǎn)單的示例;比如我們要備份服務(wù)器上的 /home 和/opt ,在/home中,我想把beinan和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/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
[linuxsirhome]
path = /home
list=yes
ignore errors
auth users = linuxsir
secrets file = /etc/rsyncd/rsyncd.secrets
comment = linuxsir home
exclude = beinan/ samba/
[beinan]
path = /opt
list=no
ignore errors
comment = optdir
auth users = beinan
secrets file = /etc/rsyncd/rsyncd.secrets
注: 關(guān)于 auth users 是必須在服務(wù)器上存在的真實(shí)的系統(tǒng)用戶,如果你想用多個(gè)用戶,那就以,號(hào)隔開(kāi);比如 auth users = beinan , linuxsir
密碼文件:/etc/rsyncd/rsyncd.secrets的內(nèi)容格式;
用戶名:密碼
而我們?cè)诶又衦syncd.secrets的內(nèi)容如下類似的;在文檔中說(shuō),有些系統(tǒng)不支持長(zhǎng)密碼,自己嘗試著設(shè)置一下吧。另外 rsyncd.secrets文件權(quán)限對(duì)其它用戶組是不可讀的。如果你設(shè)置錯(cuò)了,可能rsync不工作。
linuxsir:222222
beinan:333333
注: 這里的密碼值得注意,為了安全,你不能把系統(tǒng)用戶的密碼寫在這里。比如你的系統(tǒng)用戶 linuxsir 密碼是 abcdefg ,為了安全,你可以讓rsync 中的linuxsir 為 222222 。這和samba的用戶認(rèn)證的密碼原理是差不多的;
rsyncd.motd 文件;
它是定義rysnc 服務(wù)器信息的,也就是用戶登錄信息。比如讓用戶知道這個(gè)服務(wù)器是誰(shuí)提供的等;類似ftp服務(wù)器登錄時(shí),我們所看到的 linuxsir.org ftp ……。 當(dāng)然這在全局定義變量時(shí),并不是必須的,你可以用#號(hào)注掉,或刪除;我在這里寫了一個(gè) rsyncd.motd的內(nèi)容為:
+++++++++++++++++++++++++++
+ linuxsir.org rsync 2002-2007 +
+++++++++++++++++++++++++++
4 架設(shè)rsync服務(wù)器的示例說(shuō)明;
4.1 全局定義;
在rsync 服務(wù)器中,全局定義有幾個(gè)比較關(guān)健的,根據(jù)我們前面所給的配置文件 rsyncd.conf 文件;
pid file = /var/run/rsyncd.pid 注:告訴進(jìn)程寫到 /var/run/rsyncd.pid 文件中;
port = 873 注:指定運(yùn)行端口,默認(rèn)是873,您可以自己指定;
address = 192.168.1.171 注:指定服務(wù)器IP地址;
uid = nobody
gid = nobdoy
注:服務(wù)器端傳輸文件時(shí),要發(fā)哪個(gè)用戶和用戶組來(lái)執(zhí)行,默認(rèn)是nobody。 如果用nobody 用戶和用戶組,可能遇到權(quán)限問(wèn)題,有些文件從服務(wù)器上拉不下來(lái)。所以我就偷懶,為了方便,用了root 。不過(guò)您可以在定義要同步的目錄時(shí)定義的模塊中指定用戶來(lái)解決權(quán)限的問(wèn)題。
use chroot = yes
注:用chroot,在傳輸文件之前,服務(wù)器守護(hù)程序在將chroot 到文件系統(tǒng)中的目錄中,這樣做的好處是可能保護(hù)系統(tǒng)被安裝漏洞侵襲的可能。缺點(diǎn)是需要超級(jí)用戶權(quán)限。另外對(duì)符號(hào)鏈接文件,將會(huì)排除在外。也就是說(shuō),你在rsync服務(wù)器上,如果有符號(hào)鏈接,你在備份服務(wù)器上運(yùn)行客戶端的同步數(shù)據(jù)時(shí),只會(huì)把符號(hào)鏈接名同步下來(lái),并不會(huì)同步符號(hào)鏈接的內(nèi)容;這個(gè)需要自己來(lái)嘗試;
read only = yes
注:read only 是只讀選擇,也就是說(shuō),不讓客戶端上傳文件到服務(wù)器上。還有一個(gè) write only選項(xiàng),自己嘗試是做什么用的吧;
#limit access to private LANs
hosts allow=192.168.1.0/255.255.255.0 10.0.1.0/255.255.255.0
注:在您可以指定單個(gè)IP,也可以指定整個(gè)網(wǎng)段,能提高安全性。格式是ip 與ip 之間、ip和網(wǎng)段之間、網(wǎng)段和網(wǎng)段之間要用空格隔開(kāi);
max connections = 5
注:客戶端最多連接數(shù);
motd file = /etc/rsyncd/rsyncd.motd
注:motd file 是定義服務(wù)器信息的,要自己寫 rsyncd.motd 文件內(nèi)容。當(dāng)用戶登錄時(shí)會(huì)看到這個(gè)信息。比如我寫的是:
+++++++++++++++++++++++++++
+ linuxsir.org rsync 2002-2007 +
+++++++++++++++++++++++++++
log file = /var/log/rsync.log
注:rsync 服務(wù)器的日志;
transfer logging = yes
注:這是傳輸文件的日志;
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
4.2 模塊定義;
模塊定義什么呢?主要是定義服務(wù)器哪個(gè)目錄要被同步。每個(gè)模塊都要以[name]形式。這個(gè)名字就是在rsync 客戶端看到的名字,其實(shí)有點(diǎn)象Samba服務(wù)器提供的共享名。而服務(wù)器真正同步的數(shù)據(jù)是通過(guò) path 來(lái)指定的。我們可以根據(jù)自己的需要,來(lái)指定多個(gè)模塊。每個(gè)模塊要指定認(rèn)證用戶,密碼文件、但排除并不是必須的;
下面前面配置文件模塊的例子:
[linuxsirhome]
注:模塊,它為我們提供了一個(gè)鏈接的名字,鏈接到哪呢,在本模塊中,鏈接到了/home目錄;要用[name] 形式;
path = /home 注:指定文件目錄所在位置,這是必須指定的;
auth users = linuxsir 注:認(rèn)證用戶是linuxsir ,是必須在 服務(wù)器上存在的用戶;
list=yes 注:list 意思是把rsync 服務(wù)器上提供同步數(shù)據(jù)的目錄在服務(wù)器上模塊是否顯示列出來(lái)。默認(rèn)是yes 。如果你不想列出來(lái),就no ;如果是no是比較安全的,至少別人不知道你的服務(wù)器上提供了哪些目錄。你自己知道就行了;
ignore errors 注:忽略IO錯(cuò)誤,詳細(xì)的請(qǐng)查文檔;
secrets file = /etc/rsyncd/rsyncd.secrets 注:密碼存在哪個(gè)文件;
comment = linuxsir home data 注:注釋可以自己定義,寫什么都行,寫點(diǎn)相關(guān)的內(nèi)容就行;
exclude = beinan/ samba/
注:exclude 是排除的意思,也就是說(shuō),要把/home目錄下的beinan和samba 排除在外; beinan/和samba/目錄之間有空格分開(kāi) ;
[beinan]
path = /opt 注:指定文件目錄所在位置;
list=no
comment = optdir
auth users = beinan 注:是必段在服務(wù)器上存在的用戶;
secrets file = /etc/rsyncd/rsyncd.secrets
ignore errors
5 啟動(dòng)rsync 服務(wù)器及防火墻的設(shè)置;
5.1 啟動(dòng)rsync服務(wù)器;
啟動(dòng)rsync 服務(wù)器相當(dāng)簡(jiǎn)單,--daemon 是讓rsync 以服務(wù)器模式運(yùn)行;
[root@linuxsir:~]#/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
注: 如果你找不到rsync 命令,你應(yīng)該知道rsync 是安裝在哪了。比如rsync 可執(zhí)行命令可能安裝在了 /usr/local/bin目錄;也就是如下的命令;
[root@linuxsir:~]#/usr/local/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
當(dāng)然您也可以寫一個(gè)腳本來(lái)開(kāi)機(jī)自動(dòng)啟動(dòng)rysnc 服務(wù)器,你自己查查文檔試試,這個(gè)簡(jiǎn)單。因?yàn)槲矣胹lackware 也有一個(gè)類似的腳本。我感覺(jué)不如直接手工運(yùn)行方面,或者把這個(gè)命令寫入rc.local文件中,這樣也一樣能自動(dòng)運(yùn)行;
5.2 rsync服務(wù)器和防火墻;
Linux 防火墻是用iptables,所以我們至少在服務(wù)器端要讓你所定義的rsync 服務(wù)器端口通過(guò),客戶端上也應(yīng)該讓通過(guò)。
[root@linuxsir:~]#iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
[root@linuxsir:~]#iptables -L 查看一下防火墻是不是打開(kāi)了 873端口;
6 通過(guò)rsync客戶端來(lái)同步數(shù)據(jù);
6.1 列出rsync 服務(wù)器上的所提供的同步內(nèi)容;
首先:我們看看rsync服務(wù)器上提供了哪些可用的數(shù)據(jù)源;
[beinan@beinnaIBM:~]$ rsync --list-only linuxsir@linuxsir.org::
+++++++++++++++++++++++++++++++++
+++ linuxsir.org rsync server ++
+++++++++++++++++++++++++++++++++
linuxsirhome linuxsir home data
注: 前面是rsync 所提供的數(shù)據(jù)源,也就是我們?cè)趓syncd.conf 中所寫的[linuxsirhome]模塊。而“l(fā)inuxsir home data”是由[linuxsirhome]模塊中的 comment = linuxsir home data 提供的;為什么沒(méi)有把beinan 數(shù)據(jù)源列出來(lái)呢?因?yàn)槲覀冊(cè)赱beinan]中已經(jīng)把list=no了。
[beinan@beinnaIBM:~]$ rsync --list-only linuxsir@linuxsir.org::linuxsirhome
試試這個(gè)?
6.2 rsync 客戶端同步數(shù)據(jù);
[beinan@beinnaIBM:~]$ rsync -avzP linuxsir@linuxsir.org::linuxsirhome linuxsirhome
Password: 這里要輸入linuxsir的密碼,是服務(wù)器端提供的,在前面的例子中,我們用的是 222222,輸入的密碼并不顯示出來(lái);輸好后就回車;
注: 這個(gè)命令的意思就是說(shuō),用linuxsir 用戶登錄到服務(wù)器上,把linuxsirhome數(shù)據(jù),同步到本地目錄linuxsirhome上。當(dāng)然本地的目錄是可以你自己定義的,比如 linuxsir也是可以的;當(dāng)你在客戶端上,當(dāng)前操作的目錄下沒(méi)有l(wèi)inuxsirhome這個(gè)目錄時(shí),系統(tǒng)會(huì)自動(dòng)為你創(chuàng)建一個(gè);當(dāng)存在linuxsirhome這個(gè)目錄中,你要注意它的寫權(quán)限。
說(shuō)明:
-a 參數(shù),相當(dāng)于-rlptgoD,-r 是遞歸 -l 是鏈接文件,意思是拷貝鏈接文件;-p 表示保持文件原有權(quán)限;-t 保持文件原有時(shí)間;-g 保持文件原有用戶組;-o 保持文件原有屬主;-D 相當(dāng)于塊設(shè)備文件;
-z 傳輸時(shí)壓縮;
-P 傳輸進(jìn)度;
-v 傳輸時(shí)的進(jìn)度等信息,和-P有點(diǎn)關(guān)系,自己試試。可以看文檔;
[beinan@beinnaIBM:~]$ rsync -avzP --delete linuxsir@linuxsir.org::linuxsirhome linuxsirhome
這回我們引入一個(gè) --delete 選項(xiàng),表示客戶端上的數(shù)據(jù)要與服務(wù)器端完全一致,如果 linuxsirhome目錄中有服務(wù)器上不存在的文件,則刪除。最終目的是讓linuxsirhome目錄上的數(shù)據(jù)完全與服務(wù)器上保持一致;用的時(shí)候要小心點(diǎn),最好不要把已經(jīng)有重要數(shù)所據(jù)的目錄,當(dāng)做本地更新目錄,否則會(huì)把你的數(shù)據(jù)全部刪除;
[beinan@beinnaIBM:~]$ rsync -avzP --delete --password-file=rsync.password linuxsir@linuxsir.org::linuxsirhome linuxsirhome
這次我們加了一個(gè)選項(xiàng) --password-file=rsync.password ,這是當(dāng)我們以linuxsir用戶登錄rsync服務(wù)器同步數(shù)據(jù)時(shí),密碼將讀取 rsync.password 這個(gè)文件。這個(gè)文件內(nèi)容只是linuxsir用戶的密碼。我們要如下做;
[beinan@beinnaIBM:~]$ touch rsync.password
[beinan@beinnaIBM:~]$ chmod 600 rsync.passwod
[beinan@beinnaIBM:~]$ echo "222222"> rsync.password
[beinan@beinnaIBM:~]$ rsync -avzP --delete --password-file=rsync.password linuxsir@linuxsir.org::linuxsirhome linuxsirhome
注: 這樣就不需要密碼了;其實(shí)這是比較重要的,因?yàn)榉?wù)器通過(guò)crond 計(jì)劃任務(wù)還是有必要的;
6.3 讓rsync 客戶端自動(dòng)與服務(wù)器同步數(shù)據(jù);
服務(wù)器是重量級(jí)應(yīng)用,所以數(shù)據(jù)的網(wǎng)絡(luò)備份還是極為重要的。我們可以在生產(chǎn)型服務(wù)器上配置好rsync 服務(wù)器。我們可以把一臺(tái)裝有rysnc機(jī)器當(dāng)做是備份服務(wù)器。讓這臺(tái)備份服務(wù)器,每天在早上4點(diǎn)開(kāi)始同步服務(wù)器上的數(shù)據(jù);并且每個(gè)備份都是完整備份。有時(shí)硬盤壞掉,或者服務(wù)器數(shù)據(jù)被刪除,完整備份還是相當(dāng)重要的。這種備份相當(dāng)于每天為服務(wù)器的數(shù)據(jù)做一個(gè)鏡像,當(dāng)生產(chǎn)型服務(wù)器發(fā)生事故時(shí),我們可以輕松恢復(fù)數(shù)據(jù),能把數(shù)據(jù)損失降到最低;是不是這么回事??
第一步:創(chuàng)建同步腳本和密碼文件
[beinan@beinnaIBM:~] mkdir /etc/cron.daily.rsync
[beinan@beinnaIBM:~] cd /etc/cron.daily.rsync
[beinan@beinnaIBM:~] touch linuxsir.sh beinan.sh
[beinan@beinnaIBM:~] chmod 755 /etc/cron.daily.rsync/*.sh
[beinan@beinnaIBM:~] mkdir /etc/rsyncd/
[beinan@beinnaIBM:~] touch /etc/rsyncd/rsynclinuxsir.password
[beinan@beinnaIBM:~] touch /etc/rsyncd/rsyncbeinan.password
[beinan@beinnaIBM:~] chmod 600 /etc/rsyncd/rsyncbeinan.*
注: 我們?cè)?/etc/cron.daily/ 中創(chuàng)建了兩個(gè)文件beinan.sh和linuxsir.sh ,并且是權(quán)限是 755的。創(chuàng)建了兩個(gè)密碼文件,linuxsir用戶用的是 rsynclinuxsir.password ,而beinan用戶用的是 rsyncbeinan.password ,權(quán)限是600;
我們編輯linuxsir.sh,內(nèi)容是如下的:
#!/bin/sh
#linuxsir.org home backup
/usr/bin/rsync -avzP --password-file=/etc/rsyncd/rsynclinuxsir.password linuxsir@192.168.1.171::linuxsirhome /home/linuxsirhome/$(date +''%m-%d-%y'')
我們編輯 beinan.sh ,內(nèi)容是:
#!/bin/sh
#linuxsir.org beinan home backup
/usr/bin/rsync -avzP --password-file=/etc/rsyncd/rsyncbeinan.password linuxsir@192.168.1.171::beinan /home/beinanhome/$(date +''%m-%d-%y'')
注:你可以把linuxsir.sh 和beinan.sh 的內(nèi)容合并到一個(gè)文件中,比如都寫到 linuxsir.sh 中;
接著我們修改 /etc/rsyncd/rsynclinuxsir.password 和 rsyncbeinan.password的內(nèi)容;
[beinan@beinnaIBM:~] echo "222222" > /etc/rsyncd/rsynclinuxsir.password
[beinan@beinnaIBM:~] echo "333333"> /etc/rsyncd/rsyncbeinan.password
然后我們?cè)?home目錄下創(chuàng)建linuxsirhome 和beinanhome兩個(gè)目錄,意思是服務(wù)器端的linuxsirhome數(shù)據(jù)同步到備份服務(wù)器上的/home/linuxsirhome下,beinan數(shù)據(jù)同步到 /home/beinanhome/目錄下。并按年月日歸檔創(chuàng)建目錄;每天備份都存檔;
[beinan@beinnaIBM:~] mkdir /home/linuxsirhome
[beinan@beinnaIBM:~] mkdir /home/beinanhome
第二步:修改crond服務(wù)器的配置文件
[beinan@beinnaIBM:~] crontab -e
加入下面的內(nèi)容:
# Run daily cron jobs at 4:10 every day backup linuxsir data:
10 4 * * * /usr/bin/run-parts /etc/cron.daily.rsync 1> /dev/null
注:
第一行是注釋,是說(shuō)明內(nèi)容,這樣能自己記住。
第二行表示在每天早上4點(diǎn)10分的時(shí)候,運(yùn)行 /etc/cron.daily.rsync 下的可執(zhí)行腳本任務(wù);
第三步:重啟crond服務(wù)器;
配置好后,要重啟crond 服務(wù)器;
[beinan@beinnaIBM:~]# killall crond 注:殺死crond 服務(wù)器的進(jìn)程;
[beinan@beinnaIBM:~]# ps aux |grep crond 注:查看一下是否被殺死;
[beinan@beinnaIBM:~]# /usr/sbin/crond 注:?jiǎn)?dòng) crond 服務(wù)器;
[beinan@beinnaIBM:~]# ps aux |grep crond 注:查看一下是否啟動(dòng)了?
root 3815 0.0 0.0 1860 664 ? S 14:44 0:00 /usr/sbin/crond
root 3819 0.0 0.0 2188 808 pts/1 S+ 14:45 0:00 grep crond
7 問(wèn)題處理;
當(dāng)同步出現(xiàn)錯(cuò)誤時(shí),可能是你的密碼文件權(quán)限的問(wèn)題,或者格式不對(duì),也可能是你復(fù)制、粘貼造成的。
另外權(quán)限的問(wèn)題也應(yīng)該關(guān)注一下,這是最容易出問(wèn)題的地方;如果您對(duì)權(quán)限不太了解,應(yīng)該在LinuxSir.Org 上查找用戶和用戶組,以及權(quán)限方面的知識(shí);
8 未盡事宜;
本文并不是大而全的rsync 說(shuō)明文檔,僅僅是把網(wǎng)絡(luò)同步文件的內(nèi)容說(shuō)一說(shuō),也不一定能完全能說(shuō)的清楚;對(duì)于任何一個(gè)工具來(lái)說(shuō),都足可以寫一本書,所以本文也不可能完全全面的介紹rsync 。如果您想了解更多,請(qǐng)參考官方文檔或者man ,我也一樣查看這些內(nèi)容來(lái)應(yīng)用rsync 。
如果我們用普通用戶用rsync 進(jìn)行與服務(wù)器同步數(shù)據(jù)時(shí),同步下來(lái)的數(shù)據(jù),可能屬主會(huì)改變。為了保持文件的屬主和用戶組與服務(wù)器端完全一致,用root來(lái)運(yùn)行rsync 就可以了……
9 關(guān)于本文;
本文是為了解決公司內(nèi)部文件上服務(wù)器數(shù)據(jù)遷移到新的服務(wù)器應(yīng)用時(shí)而寫的,并不是特地為寫rysnc 而寫rsync 。我用不到的東西,或者我不會(huì)的東西,我想寫也寫不出來(lái);其實(shí)我什么不會(huì),只是想應(yīng)用時(shí),才臨時(shí)抱佛腳,解決好問(wèn)題后就忘掉。等用到的時(shí)候再查我寫過(guò)的東西…… :(
本文適合對(duì)象,面向所有初學(xué)者, 最好是一點(diǎn)Linux也不懂的。如果您是高級(jí)應(yīng)用者,http://rsync. 完全能滿足我們的需要;
“北南不息,寫DOC不止;”,只是沒(méi)有太多的時(shí)間罷了……
10 更新日志;
2007/07/17 v0.1b 全文完成,進(jìn)入抓蟲階段;
11