溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

linux下rsync的安裝和配置

發(fā)布時間:2021-08-05 19:59:02 來源:億速云 閱讀:331 作者:chen 欄目:開發(fā)技術(shù)

這篇文章主要講解了“l(fā)inux下rsync的安裝和配置”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“l(fā)inux下rsync的安裝和配置”吧!

Redhat中安裝rsync

1、  首先在服務(wù)端和客戶端都安裝rsync,我的RHEL5默認(rèn)已經(jīng)安裝好了。在安裝RedHat5的時候,可以在軟件定制中的“基本系統(tǒng)”——》“基本”的“可選的軟件包”中看見:rsync-2.6.8是默認(rèn)選擇安裝的

linux下rsync的安裝和配置

linux下rsync的安裝和配置

2、    也可以通過命令行檢查是否安裝:

linux下rsync的安裝和配置

或者:rpm –q rsync

3、  如果在開始安裝RedHat的時候,使用默認(rèn)選擇的rysnc軟件,但現(xiàn)在想用更高版本的rsync,可以卸載掉rysnc,再安裝更高版本的軟件:

linux下rsync的安裝和配置

4、    卸載完2.6.8版本的rysnc,下面來安裝更高版本的rsync(3.0.9):

linux下rsync的安裝和配置
linux下rsync的安裝和配置

配置rsync服務(wù)器

5、  修改rsync的配置文件

linux下rsync的安裝和配置

可以看到rysnc服務(wù)是關(guān)閉的(disable = yes),這里把它開啟,把disable的值改為no

6、  創(chuàng)建rsync服務(wù)器配置文件/etc/rsyncd.conf

[root@hyj etc]# vim /etc/rsyncd.conf
uid = root
gid = root
  port = 873                #    指定運行端口,默認(rèn)是873,您可以自己指定
hosts allow = 192.168.0.204, 192.168.1.205     # 允許訪問的客戶機(jī)
#hosts deny = 0.0.0.0/32           #拒絕訪問的
use chroot = 
max connections = 
timeout=

## 下面這些綠色文件是安裝完RSYNC服務(wù)后自動生成的文件,當(dāng)然也可以手動配置到指定路徑

pid file = /var/run/rsyncd.pid   ##pid文件的存放
lock file = /var/run/rsync.lock   ##鎖文件的存放位置
log file = /var/log/rsyncd.log   ##日志記錄文件的存放
#motd file = /etc/rsyncd.motd   #歡迎
## 上面這段是全局配置,下面的模塊可以有
  [test]          ## 模塊名字,自己命名
  path = /home/hyj/workspace/test        #指定文件目錄所在位置,這是必須指定 
  comment = rsync files             ## 注釋
ignore errors                 ##忽略IO
read only = yes 
  list = no                   ## 是否把rsync 服務(wù)器上提供同步數(shù)據(jù)的目錄顯示
  ## 下面這一行,同步驗證時用的賬號,如果沒有這項就是匿名同步,client同步時不用用戶名也能同步。
  auth users = rsync
secrets file = /etc/rsync.passwd       ## 指定認(rèn)證文件

7、  然后創(chuàng)建認(rèn)證文件:

[root@hyj etc]# vim /etc/rsync.passwd
 rsync:hyl            ## 用戶名:密碼。注意這個不是系統(tǒng)用戶,只是rsync用戶。

所以不用useradd。

(名字隨便寫,只要和上邊配置文件里的“auth users”參數(shù)一致即可),格式(一行一個用戶)

賬號:密碼

(2)、把密碼文件的權(quán)限改成600

[root@hyj etc]# chmod 600 /etc/rsync.passwd          ## 只能所有者可讀,否則報錯

8、   如果在配置文件中指定了歡迎信息,在/etc下創(chuàng)建rsyncd.motd,設(shè)置歡迎信息:

[root@hyj etc]# vim /etc/rsyncd.motd
      Welcome the rsync services!

啟動rsyn

9、    在啟動之前,可以先看一下rsync是否已經(jīng)啟動運行:用lsof或者nestat都可以

linux下rsync的安裝和配置

    根據(jù)輸出顯示state為LISTEN,表示為等待接受鏈接的狀態(tài),說明rsync已經(jīng)啟動。

    現(xiàn)在先kill掉rsync進(jìn)程,kill之前為上圖,kill之后,再次執(zhí)行netstat –anp|grep 873或者lsof –i:873,結(jié)果為空:

linux下rsync的安裝和配置

10、 防火墻設(shè)置:

如果服務(wù)器上裝有防火墻,需在服務(wù)器中設(shè)置iptables將837端口開放。

[root@hyj ~]# iptables -A INPUT -p tcp --dport 873 -j ACCEPT

11、 如果rsync進(jìn)程沒有運行,在server端將rsync啟動:

(1)、啟動rsync服務(wù)端(以守護(hù)進(jìn)程形式,獨立啟動)

#/usr/bin/rsync –daemon

linux下rsync的安裝和配置

說明啟動成功。

(切記:命令行啟動的最后是daemon,而不是deamon,否則回報如下錯誤:

rsync: --deamon: unknown option

rsync error: syntax or usage error (code 1) at main.c(1231) [client=2.6.8])

(2)、啟動rsync服務(wù)端 (以xinetd超級進(jìn)程啟動)

# /etc/rc.d/init.d/xinetd reload(reload是網(wǎng)上的說法,但是我試了一下報錯,start可以)
             或者:/etc/rc.d/init.d/xinetd reload(reload是網(wǎng)上的說法,但是我試了一下報錯,start可以)

          演示:

     linux下rsync的安裝和配置linux下rsync的安裝和配置

12、 設(shè)置自動啟動:

本機(jī)安裝的Redhat中rsync已經(jīng)是開機(jī)自動啟動的,網(wǎng)上說的那兩種方法,配置文件中都沒有找到相應(yīng)的配置,通過用chkconfig 命令查看和修改開機(jī)啟動服務(wù).
[root@hyj ~]# chkconfig

linux下rsync的安裝和配置

(結(jié)果部分省略),可以看出rsync處于on的狀態(tài)。

配置rsync客戶端

13、用安裝服務(wù)器端的方式安裝rsync。

14、啟動rsync,如果報如下錯誤,是因為在etc下沒有rsyncd.conf配置文件:

linux下rsync的安裝和配置

15、[root@hyj etc]# vi /etc/rsyncd.conf

文件內(nèi)容為空就行。然后啟動rsync,可以啟動:

linux下rsync的安裝和配置

命令和實例

16、Rsync的命令格式可以為以下六種:

  rsync [OPTION]... SRC DEST
  rsync [OPTION]... SRC [USER@]HOST:DEST
  rsync [OPTION]... [USER@]HOST:SRC DEST
  rsync [OPTION]... [USER@]HOST::SRC DEST
  rsync [OPTION]... SRC [USER@]HOST::DEST
  rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]

17、常用為以下兩種:

(4)、rsync [OPTION]... [USER@]HOST::SRC   DEST

從遠(yuǎn)程rsync服務(wù)器中拷貝文件到本地機(jī)。當(dāng)SRC路徑信息包含"::"分隔符時啟動該模式。

如:rsync -av root@172.16.78.192::www /databack

(5)、rsync [OPTION]... SRC   [USER@]HOST::DEST

從本地機(jī)器拷貝文件到遠(yuǎn)程rsync服務(wù)器中。當(dāng)DST路徑信息包含"::"分隔符時啟動該模式。

如:rsync -av /databack root@172.16.78.192::www

18、下面為實例:

    服務(wù)器ip為192.168.8.126,客戶端ip為192.168.8.122

19、 (1)、把服務(wù)器上的/home/hyj/workspace/test文件夾中的內(nèi)容備份到客戶端的/usr/local/share/rsync_backup中:
[root@hyj ~]# /usr/bin/rsync -vzrtopg --delete  --progress rsync@192.168.8.126::test /usr/local/share/rsync_backup

/etc/rsyncd.conf中模塊的內(nèi)容:

path = /home/hyj/workspace/test
comment = rsync files
ignore errors
read only = yes
list = no
auth users = rsync
secrets file = /etc/rsync.passwd

上面這個命令行中-vzrtopg里的v是verbose,z是壓縮,r是recursive,topg都是保持文件原有屬性如屬主、時間的參數(shù)(也可以用直接用a來代替rtopg, a為 --archive 歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性,等于-rlptgoD)。--progress是指顯示出詳細(xì)的進(jìn)度情況,--delete是指如果服務(wù)器端刪除了這一文件,那么客戶端也相應(yīng)把文件刪除,保持真正的一致。

(2)、上面的命令需要在備份的時候需要輸入密碼,可以在客戶端建立一個密碼文件,在命令中把密碼文件作為參數(shù)帶入:

[root@hyj rsync_backup]# vim /etc/rsync.pass
密碼文件中不用輸入用戶名,只需輸入密碼即可:

linux下rsync的安裝和配置

這份密碼文件權(quán)限屬性要設(shè)得只有root可讀,不然會報錯,修改屬性:

[root@hyj rsync_backup]# chmod 600 /etc/rsync.pass,

    用下面這條命令,可以不輸入密碼:

/usr/bin/rsync -vzrtopg --delete --progress rsync@192.168.8.126::test /usr/local/share/rsync_backup --password-file=/etc/rsync.pass

20、 帶exclude 參數(shù):

把服務(wù)器上的/home/hyj/workspace/test文件夾中的內(nèi)容備份到客戶端的/usr/local/share/rsync_backup中,但不包括:res目錄和default.properties文件:

/usr/bin/rsync -vzrtopg --delete --exclude "res/" --exclude "default.properties" --progress rsync@192.168.8.126::test /usr/local/share/rsync_backup --password-file=/etc/rsync.pass

    exclude/include規(guī)則實例

Here are some exclude/include examples:
 --exclude "*.o"  would exclude all filenames matching *.o
 --exclude "/foo" would exclude a file in the base directory called foo
 --exclude "foo/" would exclude any directory called foo.
 --exclude "/foobar" would exclude any file called bar two or more levels below a base directory called foo.
 --include "*/" --include "*.c" --exclude "*" would include all directories and C source files
--include "foo/" --include "foo/bar.c" --exclude "*" would include only foo/bar.c
 (the foo/ directory must be explicitly included or it would be excluded by the "*")

21、 把客戶端上的/home/hyj/vitest文件夾中的內(nèi)容備份到服務(wù)器的/usr/local/share/rsync_backup中,在客戶端執(zhí)行如下命令:

  /usr/bin/rsync -vzrtopg --delete --progress /home/hyj/vitest rsync@192.168.8.126::clientdata --password-file=/etc/rsync.pass

此時服務(wù)器的配置文件/etc/rsyncd.conf內(nèi)容為:

 uid = root
gid = root
hosts allow = 192.168.8.122, 192.168.8.123
   #hosts deny = 0.0.0.0/32
   use chroot = no
   max connections = 10
   pid file = /var/run/rsyncd.pid
   lock file = /var/run/rsync.lock
   log file = /var/log/rsyncd.log
   timeout=600
[test]
path = /home/hyj/workspace/test
   comment = rsync files
   ignore errors
   read only = yes
   list = no
   auth users = rsync
   secrets file = /etc/rsync.passwd
 # 上面的命令中,客戶端的數(shù)據(jù)備份到clientdata模塊中,備份到/usr/local/share/rsync_backup文件夾下,read only改為no,# # 否則會報ERROR: module is read only的錯誤
[clientdata]     
path = /usr/local/share/rsync_backup
comment = rsync files
   ignore errors
   read only = no
   list = no
auth users = rsync
   secrets file = /etc/rsync.passwd

 定時計劃備份

22、 如果執(zhí)行crontab命令提示:

linux下rsync的安裝和配置

說明還沒有為root這個賬號提供crontab。執(zhí)行crontab –e 創(chuàng)建一個crontab:

linux下rsync的安裝和配置

23、 編輯crontab,每兩分鐘備份一次:

linux下rsync的安裝和配置

24、 兩分鐘后,查看,數(shù)據(jù)已經(jīng)備份:

linux下rsync的安裝和配置

25、 每天上午9點20執(zhí)行rysnc備份任務(wù):

20 9 * * *       /usr/bin/rsync -vzrtopg --delete  --progress rsync@192.168.8.126::test /usr/local/share/rsync_backup --password-file=/etc/rsync.pass

linux下rsync的安裝和配置 

26、附時間設(shè)置:

(1)、查看當(dāng)前時區(qū) :  date -R
(2)、查看時間和日期:date
(3)、設(shè)置時間和日期:
      將系統(tǒng)日期設(shè)定成2012年8月4日的命令:date -s 08/04/2012
      將系統(tǒng)時間設(shè)定成下午9點20分0秒的命令:date -s 09:20:00
(4)、將當(dāng)前時間和日期寫入BIOS,避免重啟后失效:hwclock -w

FAQ

27、我需要在防火墻上開放哪些端口以適應(yīng)rsync?

A:視情況而定

    rsync可以直接通過873端口的tcp連接傳文件,也可以通過22端口的ssh來進(jìn)行文件傳遞,但你也可以通過下列命令改變它的端口:

   rsync --port 8730 otherhost::

或者

rsync -e 'ssh -p 2002' otherhost:

28、 我如何通過rsync只復(fù)制目錄結(jié)構(gòu),忽略掉文件呢?

A:rsync -av --include '*/' --exclude '*' source-dir dest-dir

常見錯誤

29、rsync: failed to connect to 218.107.243.2: No route to host (113)

rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=2.6.9]

解決:對方?jīng)]開機(jī)、防火墻阻擋、通過的網(wǎng)絡(luò)上有防火墻阻擋,都有可能。關(guān)閉防火墻,其實就是把tcp udp 的873端口打開:

   解決辦法:打開服務(wù)器873端口(RH-Firewall-1-INPUT為REHL 5自帶的鏈名,10為最后一條默認(rèn)規(guī)則(拒絕所以),根據(jù)實際情況修改這兩個參數(shù)。另外“-m state --state NEW -m tcp”參數(shù)不加也行)

    #iptables -I RH-Firewall-1-INPUT 10 -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
    #iptables -I RH-Firewall-1-INPUT 10 -p udp -m state --state NEW -m udp --dport 873 -j ACCEPT

   打開端口之前的iptables配置:

linux下rsync的安裝和配置

注:最后一條規(guī)則(REJECT  all -- anywhere   anywhere reject-with icmp-host-prohibited)表示拒絕所有的數(shù)據(jù)包,并向?qū)Ψ交貞?yīng)icmp-host- prohibited數(shù)據(jù)包。

本機(jī)測試通過的方法,打開服務(wù)器873端口:

(1)、[root@duoduo ~]# iptables -I INPUT -p tcp --dport 873 -j  
       [root@duoduo ~]# iptables -I INPUT -p udp --dport 873 -j ACCEPT

    (注意要用-I,而不能用-A,用A的話會添加這條規(guī)則到iptables鏈的最后,但是沒有到這條規(guī)則就被原來的最后一條REJECT了,客戶端還是無法執(zhí)行rysnc備份,用I的話會插入到鏈的最前面,經(jīng)過測試可以正常執(zhí)行rysnc備份。另外“-m state --state NEW -m tcp”參數(shù)可以加上)。

(2)、上面提到的,插入規(guī)則到最后一條的前面:

#iptables -I RH-Firewall-1-INPUT 10 -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
#iptables -I RH-Firewall-1-INPUT 10 -p udp -m state --state NEW -m udp --dport 873 -j ACCEPT

  插入之前:

linux下rsync的安裝和配置

插入規(guī)則:

linux下rsync的安裝和配置
linux下rsync的安裝和配置

插入規(guī)則后:

linux下rsync的安裝和配置

再在客戶端執(zhí)行,可以正常執(zhí)行。

    (3)、或者關(guān)閉服務(wù)器的iptables:service iptables stop

30、password file must not be other-accessible

continuing without password file

Password:

解決:這是因為rsyncd.pwd rsyncd.sec的權(quán)限不對,應(yīng)該設(shè)置為600。如:chmod 600 rsyncd.pwd

31、@ERROR: auth failed on module xxxxx

rsync: connection unexpectedly closed (90 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at io.c(150)

解決:這是因為密碼設(shè)置錯了,無法登入成功,檢查一下rsync.pwd,看客服是否匹配。還有服務(wù)器端沒啟動rsync 服務(wù)也會出現(xiàn)這種情況。

32、@ERROR: chroot failed

rsync: connection unexpectedly closed (75 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at io.c(150)

解決:這是因為你在 rsync.conf 中設(shè)置的 path 路徑不存在,要新建目錄才能開啟同步。

33、[root@hyj rsync_backup]# /usr/bin/rsync -vzrtopg --delete --exclude "res/" --exclude "default.properties" --progress rsync@192.168.8.126::test /usr/local/share/rsync_backup --password-file=/etc/rsync.pass
@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1516) [Receiver=3.0.9]

原因及解決辦法:

    SELinux;(下面這條命令在服務(wù)器端執(zhí)行)
    setsebool -P rsync_disable_trans on

34、ERROR: module is read only
rsync: read error: Software caused connection abort (113)
rsync error: error in rsync protocol data stream (code 12) at io.c(769) [sender=3.0.8]

解決:這是因為服務(wù)器端配置文件rsyncd.conf中read only = yes,為只讀,即不允許客戶端上傳文件,改成no就可以了。
 

感謝各位的閱讀,以上就是“l(fā)inux下rsync的安裝和配置”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對linux下rsync的安裝和配置這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI