系統(tǒng)為ubuntu server,二臺(tái)機(jī)器A和B,IP為A 192.168.1.111,B 192.168.1.222
A為rsync server,啟動(dòng)為守護(hù)進(jìn)程,B為備份機(jī),做為rsync client,最后用crontab做一個(gè)簡(jiǎn)單的作業(yè),定時(shí)在B上執(zhí)行同步文件的功能
A的安裝和配置如下:
1. apt-get install rsync 可能提示系統(tǒng)已經(jīng)安裝有了
2. 配置文件/etc/rsyncd.conf
默認(rèn)安裝時(shí)是不會(huì)有這個(gè)配置文件的,但是可以 cp /usr/share/doc/rsync/examples/rsyncd.conf /etc 把它示例中的配置文件拷貝過來
vi /etc/rsyncd.conf 這里參數(shù)有點(diǎn)多,但是有些可以先不管,關(guān)注重點(diǎn)的
[ftp] 這里是模塊,可以配置多個(gè),這個(gè)是系統(tǒng)默認(rèn)給出的一個(gè)配置,下面給一個(gè)本機(jī)上的配置示例:
--------------------------------------------------------------------------------------------------
# so omit the "pid file" line completely in that case.
pid file=/var/run/rsyncd.pid
#syslog facility=daemon
#socket options=
# MODULE OPTIONS
[share]
comment = public archive
path = /var/www/pub
use chroot = no
max connections=2
# lock file = /var/lock/rsyncd
# the default for read only is yes...
read only = no
list = yes
uid = nobody
gid = nogroup
# exclude =
# exclude from =
# include =
# include from =
auth users = rsync
secrets file = /etc/rsyncd.secrets
strict modes = yes
hosts allow = 192.168.1.222
# hosts deny =
ignore errors = yes
ignore nonreadable = yes
transfer logging = yes
log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.
timeout = 600
refuse options = checksum dry-run
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
---------------------------------------------------------------------------------------------
這里,最上面的是pid文件位置。然后配置了一個(gè)模塊名叫做share,最大連接數(shù)是2,read only = no,指定為非只讀(不然同步時(shí)會(huì)有權(quán)限問題)
而后面的auth users = rsync 是指定一個(gè)同步的賬戶名叫做rsync,這個(gè)賬戶的認(rèn)證文件是/etc/rsyncd.secrets,當(dāng)然我們要?jiǎng)?chuàng)建這個(gè)文件
3. 創(chuàng)建 /etc/rsyncd.secrets文件,內(nèi)容為: rsync:123 表示rsync這個(gè)用戶的密碼是123 然后修改文件的權(quán)限 chmod 600 /etc/rsyncd.secrets
4. rsync server做為守護(hù)進(jìn)程
vi /etc/default/rsync
可以看到開頭處這樣聲明:
------------------------------------
# start rsync in daemon mode from init.d script?
# only allowed values are "true", "false", and "inetd"
# Use "inetd" if you want to start the rsyncd from inetd,
# all this does is prevent the init.d script from printing a message
# about not starting rsyncd (you still need to modify inetd's config yourself).
RSYNC_ENABLE=inetd
-------------------------------------------
做為守護(hù)進(jìn)程,可以設(shè)置為true或是xinetd方式來啟動(dòng)。于是我們安裝inetd sudo apt-get install xinetd
安裝好后配置inetd的配置文件 vi /etc/xinetd.d/rsync ,輸入如下內(nèi)容:
---------------------------------------------------
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
-------------------------------------------------------
然后啟動(dòng)xinetd,/etc/init.d/xinetd restart,A服務(wù)器的rsyncd server就完成了!
5. B服務(wù)器由于是client,不需要配置,也不需要安裝xinetd,直接可以通過命令行執(zhí)行
rsync --delete -azvv rsync@192.168.1.111::share /var/www/pub/
這個(gè)命令就可以直接連接到192.168.111的rsync賬戶,它會(huì)提示你輸入密碼,就是A中的secrets文件中的密碼,然后同步share模塊到本機(jī)的/var/www/pub目錄,你可以事前在A機(jī)器上創(chuàng)建一個(gè)文件如test.txt,隨便寫點(diǎn)內(nèi)容,然后執(zhí)行些命令,看是不是B上多了這樣一個(gè)文件?如果是,則表示已經(jīng)連接成功。你接下來就可以做crontab了!
剛進(jìn)場(chǎng)的時(shí)候戲就落幕