rsync數(shù)據(jù)同步備份

測試環(huán)境:

rsync-server:192.168.1.132

rsync-client:192.168.1.234

軟件版本:

官方網(wǎng)站:https://rsync.samba.org/

Linux:centos6.5

rsync-3.0.6

安裝rsync:

yum -y install rsync (直接yum安裝)

配置文件:

主配置文件:/etc/rsyncd.conf

密碼文件:/etc/rsyncd.secrets

rysnc服務(wù)器信息:/etc/rsyncd/rsyncd.secrets

注意:以上3個文件采用默認(rèn)安裝羽嫡,都木有,需要自己手動添加。

[root@rsync-server ~]# touch /etc/rsyncd.conf

[root@rsync-server ~]# touch /etc/rsyncd.secrets

[root@rsync-server ~]# touch /etc/rsyncd.motd

將rsyncd.secrets這個密碼文件的文件屬性設(shè)為root擁有, 且權(quán)限要設(shè)為600, 否則無法備份成功!

[root@rsync-server ~]# chmod 600 /etc/rsyncd.secrets

配置主配置文件:

[root@rsync-server ~]# vim /etc/rsyncd.conf

寫入下面內(nèi)容:

#?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.132??
?uid = root
?gid = root???
#?uid = root??
#?gid = root?
#
#?use chroot = yes?
?read only = yes
#
#?limit access to private LANs
?hosts allow = 192.168.1.234
#?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
#
?[data]??
?path = /data/rsync/???
?list = yes
?ignore errors
?auth users = root
?secrets file = /etc/rsyncd/rsyncd.secrets
?comment = This is RHEL 4 data?
#?exclude = easylife/? samba/????

注:關(guān)于auth users是必須在服務(wù)器上存在的真實的系統(tǒng)用戶蹋盆,如果你想用多個用戶以,號隔開绍傲,比如auth users = easylife,root

  設(shè)定密碼文件

  密碼文件格式很簡單烙样,rsyncd.secrets的內(nèi)容格式為:

  用戶名:密碼

  我們在例子中rsyncd.secrets的內(nèi)容如下類似的捺萌;在文檔中說喉刘,有些系統(tǒng)不支持長密碼庐氮,自己嘗試著設(shè)置一下吧语稠。

  easylife:keer
  root:mike

  chown root.root rsyncd.secrets  #修改屬主
  chmod 600 rsyncd.secrets?? ? #修改權(quán)限

  注:1、將rsyncd.secrets這個密碼文件的文件屬性設(shè)為root擁有, 且權(quán)限要設(shè)為600, 否則無法備份成功!??????????? 出于安全目的弄砍,文件的屬性必需是只有屬主可讀仙畦。
    2、這里的密碼值得注意音婶,為了安全你不能把系統(tǒng)用戶的密碼寫在這里慨畸。比如你的系統(tǒng)用戶easylife密碼是000000,為了安全你可以讓rsync中的easylife為keer桃熄。這和samba的用戶認(rèn)證的密碼原理是差不多的先口。

  設(shè)定rsyncd.motd 文件;

   它是定義rysnc服務(wù)器信息的,也就是用戶登錄信息瞳收。比如讓用戶知道這個服務(wù)器是誰提供的等碉京;類似ftp服務(wù)器登錄時,我們所看到的 linuxsir.org ftp ……螟深。 當(dāng)然這在全局定義變量時谐宙,并不是必須的,你可以用#號注掉界弧,或刪除凡蜻;我在這里寫了一個 rsyncd.motd的內(nèi)容為:

  ++++++++++++++++++++++++++++++++++++++++++++++
  Welcome to use the mike.org.cn rsync services!
?????????? 2002------2009
  ++++++++++++++++++++++++++++++++++++++++++++++

三搭综、rsyncd.conf服務(wù)器的配置詳解

A、全局定義

  在rsync 服務(wù)器中划栓,全局定義有幾個比較關(guān)健的兑巾,根據(jù)我們前面所給的配置文件 rsyncd.conf 文件;

  pid file = /var/run/rsyncd.pid?? 注:告訴進(jìn)程寫到 /var/run/rsyncd.pid 文件中忠荞;
  port = 873? 注:指定運行端口蒋歌,默認(rèn)是873,您可以自己指定委煤;
  address = 192.168.1.171? 注:指定服務(wù)器IP地址
  uid = nobody??
  gid = nobdoy??

   注:服務(wù)器端傳輸文件時堂油,要發(fā)哪個用戶和用戶組來執(zhí)行,默認(rèn)是nobody碧绞。 如果用nobody 用戶和用戶組府框,可能遇到權(quán)限問題,有些文件從服務(wù)器上拉不下來讥邻。所以我就偷懶迫靖,為了方便,用了root 计维。不過您可以在定義要同步的目錄時定義的模塊中指定用戶來解決權(quán)限的問題袜香。

  use chroot = yes?

   注:用chroot,在傳輸文件之前鲫惶,服務(wù)器守護(hù)程序在將chroot 到文件系統(tǒng)中的目錄中,這樣做的好處是可能保護(hù)系統(tǒng)被安裝漏洞侵襲的可能实抡。缺點是需要超級用戶權(quán)限欠母。另外對符號鏈接文件,將會排除在外吆寨。也就是說赏淌,你在 rsync服務(wù)器上,如果有符號鏈接啄清,你在備份服務(wù)器上運行客戶端的同步數(shù)據(jù)時六水,只會把符號鏈接名同步下來,并不會同步符號鏈接的內(nèi)容辣卒;這個需要自己來嘗 試

  read only = yes?

  注:read only 是只讀選擇掷贾,也就是說,不讓客戶端上傳文件到服務(wù)器上荣茫。還有一個 write only選項想帅,自己嘗試是做什么用的吧;

  #limit access to private LANs
  hosts allow=192.168.1.234

#如果有其他的可以hosts allow=192.168.1.234啡莉,192.168.1.235

  注:在您可以指定單個IP港准,也可以指定整個網(wǎng)段旨剥,能提高安全性。格式是ip 與ip 之間浅缸、ip和網(wǎng)段之間轨帜、網(wǎng)段和網(wǎng)段之間要用空格隔開;

  max connections = 5???

  注:客戶端最多連接數(shù)

  motd file = /etc/rsyncd/rsyncd.motd

  注:motd file 是定義服務(wù)器信息的衩椒,要自己寫 rsyncd.motd 文件內(nèi)容阵谚。當(dāng)用戶登錄時會看到這個信息。比如我寫的是:

  ++++++++++++++++++++++++++++++++++++++++++++++
  Welcome to use the mike.org.cn rsync services!
?????????? 2002------2009
  ++++++++++++++++++++++++++++++++++++++++++++++

  log file = /var/log/rsync.log

  注:rsync 服務(wù)器的日志烟具;

  transfer logging = yes

  注:這是傳輸文件的日志

  log format = %t %a %m %f %b
  syslog facility = local3
  timeout = 300

B梢什、模塊定義

   模塊定義什么呢?主要是定義服務(wù)器哪個目錄要被同步朝聋。每個模塊都要以[name]形式嗡午。這個名字就是在rsync 客戶端看到的名字,其實有點象Samba服務(wù)器提供的共享名冀痕。而服務(wù)器真正同步的數(shù)據(jù)是通過path 指定的荔睹。我們可以根據(jù)自己的需要,來指定多個模塊言蛇。每個模塊要指定認(rèn)證用戶僻他,密碼文件、但排除并不是必須的

  下面是前面配置文件模塊的例子:

  [rhel4home]? #模塊它為我們提供了一個鏈接的名字腊尚,在本模塊中鏈接到了/home目錄吨拗;要用[name] 形式

  path = /home??? #指定文件目錄所在位置,這是必須指定的
  auth users = root?? #認(rèn)證用戶是root? 婿斥,是必須在服務(wù)器上存在的用戶
  list=yes?? #list 意思是把rsync 服務(wù)器上提供同步數(shù)據(jù)的目錄在服務(wù)器上模塊是否顯示列出來劝篷。默認(rèn)是yes 。如果你不想列出來民宿,就no 娇妓;如果是no是比較安全的,至少別人不知道你的服務(wù)器上提供了哪些目錄活鹰。你自己知道就行了哈恰;
  ignore errors? #忽略IO錯誤
  secrets file = /etc/rsyncd.secrets?? #密碼存在哪個文件
  comment = linuxsir home? data? #注釋可以自己定義
  exclude = beinan/ samba/?????

  注:exclude是排除的意思,也就是說志群,要把/home目錄下的easylife和samba排除在外着绷; easylife/和samba/目錄之間有空格分開

  [data]?
  path = /opt
  list=no
  comment = optdir??
  auth users = beinan?
  secrets file = /etc/rsyncd/rsyncd.secrets
  ignore errors

四、啟動rsync服務(wù)器及防火墻的設(shè)置

  啟動rsync服務(wù)器相當(dāng)簡單赖舟,有以下幾種方法

  A蓬戚、--daemon參數(shù)方式,是讓rsync以服務(wù)器模式運行

  #/usr/bin/rsync --daemon? --config=/etc/rsyncd/rsyncd.conf  #--config用于指定rsyncd.conf的位置,如果在/etc下可以不寫

  B宾抓、xinetd方式

  修改services加入如下內(nèi)容
  # nano -w /etc/services

  rsync  873/tcp  # rsync
  rsync  873/udp  # rsync

  這一步一般可以不做子漩,通常都有這兩行(我的RHEL4和GENTOO默認(rèn)都有)豫喧。修改的目的是讓系統(tǒng)知道873端口對應(yīng)的服務(wù)名為rsync。如沒有的話就自行加入幢泼。

  設(shè)定 /etc/xinetd.d/rsync, 簡單例子如下:

  # default: off
  # description: The rsync server is a good addition to am ftp server, as it \
  #?????? allows crc checksumming etc.
  service rsync
  {
??????? disable = no
??????? socket_type???? = stream
??????? wait??????????? = no
??????? user??????????? = root
??????? server????????? = /usr/bin/rsync
??????? server_args???? = --daemon
??????? log_on_failure? += USERID
  }

  上述, 主要是要打開rsync這個daemon, 一旦有rsync client要連接時, xinetd會把它轉(zhuǎn)介給 rsyncd(port 873)紧显。然后service xinetd restart, 使上述設(shè)定生效.

  rsync服務(wù)器和防火墻

  Linux 防火墻是用iptables,所以我們至少在服務(wù)器端要讓你所定義的rsync 服務(wù)器端口通過缕棵,客戶端上也應(yīng)該讓通過孵班。

  #iptables -A INPUT -p tcp -m state --state NEW? -m tcp --dport 873 -j ACCEPT
  #iptables -L? 查看一下防火墻是不是打開了 873端口

  如果你不太懂防火墻的配置,可以先service iptables stop 將防火墻關(guān)掉招驴。當(dāng)然在生產(chǎn)環(huán)境這是很危險的篙程,做實驗才可以這么做喲!

五别厘、通過rsync客戶端來同步數(shù)據(jù)

A虱饿、語法詳解
 
  在配置完rsync服務(wù)器后,就可以從客戶端發(fā)出rsync命令來實現(xiàn)各種同步的操作触趴。rsync有很多功能選項氮发,下面就對介紹一下常用的選項:

  rsync的命令格式可以為:
  
  1. rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
  2. rsync [OPTION]... [USER@]HOST:SRC DEST
  3. rsync [OPTION]... SRC [SRC]... DEST
  4. rsync [OPTION]... [USER@]HOST::SRC [DEST]
  5. rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
  6. rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]

  rsync有六種不同的工作模式:

  1. 拷貝本地文件;當(dāng)SRC和DES路徑信息都不包含有單個冒號":"分隔符時就啟動這種工作模式冗懦。
  2.使用一個遠(yuǎn)程shell程序(如rsh爽冕、ssh)來實現(xiàn)將本地機器的內(nèi)容拷貝到遠(yuǎn)程機器。當(dāng)DST路徑地址包含單個冒號":"分隔符時啟動該模式披蕉。
  3.使用一個遠(yuǎn)程shell程序(如rsh颈畸、ssh)來實現(xiàn)將遠(yuǎn)程機器的內(nèi)容拷貝到本地機器。當(dāng)SRC地址路徑包含單個冒號":"分隔符時啟動該模式嚣艇。
  4. 從遠(yuǎn)程rsync服務(wù)器中拷貝文件到本地機承冰。當(dāng)SRC路徑信息包含"::"分隔符時啟動該模式。
  5. 從本地機器拷貝文件到遠(yuǎn)程rsync服務(wù)器中食零。當(dāng)DST路徑信息包含"::"分隔符時啟動該模式。
  6. 列遠(yuǎn)程機的文件列表寂屏。這類似于rsync傳輸贰谣,不過只要在命令中省略掉本地機信息即可。
  -a 以archive模式操作迁霎、復(fù)制目錄吱抚、符號連接 相當(dāng)于-rlptgoD

  rsync中的參數(shù)

  -r 是遞歸
  -l 是鏈接文件,意思是拷貝鏈接文件考廉;-p 表示保持文件原有權(quán)限秘豹;-t 保持文件原有時間;-g 保持文件原有用戶組昌粤;-o 保持文件原有屬主既绕;-D 相當(dāng)于塊設(shè)備文件啄刹;
  -z 傳輸時壓縮;
  -P 傳輸進(jìn)度凄贩;
  -v 傳輸時的進(jìn)度等信息誓军,和-P有點關(guān)系,自己試試疲扎£鞘保可以看文檔;
  -e ssh的參數(shù)建立起加密的連接椒丧。
  -u只進(jìn)行更新壹甥,防止本地新文件被重寫,注意兩者機器的時鐘的同時
  --progress是指顯示出詳細(xì)的進(jìn)度情況
  --delete是指如果服務(wù)器端刪除了這一文件壶熏,那么客戶端也相應(yīng)把文件刪除句柠,保持真正的一致
  --password-file=/password/path/file來指定密碼文件,這樣就可以在腳本中使用而無需交互式地輸入驗證密碼了久橙,這里需要注意的是這份密碼文件權(quán)限屬性要設(shè)得只有屬主可讀俄占。

B、一些實例

  B1淆衷、列出rsync 服務(wù)器上的所提供的同步內(nèi)容缸榄;

  首先:我們看看rsync服務(wù)器上提供了哪些可用的數(shù)據(jù)源

  # rsync? --list-only? root@192.168.145.5::
  ++++++++++++++++++++++++++++++++++++++++++++++
  Welcome to use the mike.org.cn rsync services!
???   ?????? 2002------2009
  ++++++++++++++++++++++++++++++++++++++++++++++

  rhel4home????? ?This is RHEL 4 data

   注:前面是rsync所提供的數(shù)據(jù)源,也就是我們在rsyncd.conf中所寫的[rhel4home]模塊祝拯。而“This is RHEL 4 data”是由[rhel4home]模塊中的 comment = This is RHEL 4 data 提供的甚带;為什么沒有把rhel4opt數(shù)據(jù)源列出來呢?因為我們在[rhel4opt]中已經(jīng)把list=no了佳头。

  $ rsync? --list-only? root@192.168.145.5::::rhel4home?

  ++++++++++++++++++++++++++++++++++++++++++++++
  Welcome to use the mike.org.cn rsync services!
?  ????????? 2002------2009
  ++++++++++++++++++++++++++++++++++++++++++++++

  Password:
  drwxr-xr-x??????? 4096 2009/03/15 21:33:13 .
  -rw-r--r--??????? 1018 2009/03/02 02:33:41 ks.cfg
  -rwxr-xr-x?????? 21288 2009/03/15 21:33:13 wgetpaste
  drwxrwxr-x??????? 4096 2008/10/28 21:04:05 cvsroot
  drwx------??????? 4096 2008/11/30 16:30:58 easylife
  drwsr-sr-x??????? 4096 2008/09/20 22:18:05 giddir
  drwx------??????? 4096 2008/09/29 14:18:46 quser1
  drwx------??????? 4096 2008/09/27 14:38:12 quser2
  drwx------??????? 4096 2008/11/14 06:10:19 test
  drwx------??????? 4096 2008/09/22 16:50:37 vbird1
  drwx------??????? 4096 2008/09/19 15:28:45 vbird2

  后面的root@ip中鹰贵,root是指定密碼文件中的用戶名,之后的::rhel4home這是rhel4home模塊名

  B2康嘉、rsync客戶端同步數(shù)據(jù)碉输;

  #rsync -avzP root@192.168.145.5::rhel4home rhel4home
  Password: 這里要輸入root的密碼,是服務(wù)器端rsyncd.secrets提供的亭珍。在前面的例子中我們用的是mike敷钾,輸入的密碼并不回顯,輸好就回車肄梨。

   注: 這個命令的意思就是說阻荒,用root用戶登錄到服務(wù)器上,把rhel4home數(shù)據(jù)众羡,同步到本地當(dāng)前目錄rhel4home上侨赡。當(dāng)然本地的目錄是可以你自己 定義的。如果當(dāng)你在客戶端上當(dāng)前操作的目錄下沒有rhel4home這個目錄時,系統(tǒng)會自動為你創(chuàng)建一個羊壹;當(dāng)存在rhel4home這個目錄中蓖宦,你要注意 它的寫權(quán)限。

  #rsync -avzP? --delete linuxsir@linuxsir.org::rhel4home?? rhel4home

   這回我們引入一個--delete 選項舶掖,表示客戶端上的數(shù)據(jù)要與服務(wù)器端完全一致球昨,如果 linuxsirhome目錄中有服務(wù)器上不存在的文件,則刪除眨攘。最終目的是讓linuxsirhome目錄上的數(shù)據(jù)完全與服務(wù)器上保持一致主慰;用的時候要 小心點,最好不要把已經(jīng)有重要數(shù)所據(jù)的目錄鲫售,當(dāng)做本地更新目錄共螺,否則會把你的數(shù)據(jù)全部刪除;

  設(shè)定 rsync client

  設(shè)定密碼文件

  #rsync -avzP? --delete? --password-file=rsyncd.secrets?? root@192.168.145.5::rhel4home rhel4home

  這次我們加了一個選項 --password-file=rsyncd.secrets情竹,這是當(dāng)我們以root用戶登錄rsync服務(wù)器同步數(shù)據(jù)時藐不,密碼將讀取rsyncd.secrets這個文件。這個文件內(nèi)容只是root用戶的密碼秦效。我們要如下做雏蛮;

  # touch rsyncd.secrets
  # chmod 600 rsyncd.secrets
  # echo "mike"> rsyncd.secrets

  # rsync -avzP? --delete? --password-file=rsyncd.secrets?? root@192.168.145.5::rhel4home rhel4home

  注:這里需要注意的是這份密碼文件權(quán)限屬性要設(shè)得只有屬主可讀。

    這樣就不需要密碼了阱州;其實這是比較重要的挑秉,因為服務(wù)器通過crond 計劃任務(wù)還是有必要的;

  B3苔货、讓rsync客戶端自動與服務(wù)器同步數(shù)據(jù)

   服務(wù)器是重量級應(yīng)用犀概,所以數(shù)據(jù)的網(wǎng)絡(luò)備份還是極為重要的。我們可以在生產(chǎn)型服務(wù)器上配置好rsync 服務(wù)器夜惭。我們可以把一臺裝有rysnc機器當(dāng)做是備份服務(wù)器姻灶。讓這臺備份服務(wù)器,每天在早上4點開始同步服務(wù)器上的數(shù)據(jù)诈茧;并且每個備份都是完整備份产喉。有時 硬盤壞掉,或者服務(wù)器數(shù)據(jù)被刪除敢会,完整備份還是相當(dāng)重要的镊叁。這種備份相當(dāng)于每天為服務(wù)器的數(shù)據(jù)做一個鏡像,當(dāng)生產(chǎn)型服務(wù)器發(fā)生事故時走触,我們可以輕松恢復(fù)數(shù) 據(jù),能把數(shù)據(jù)損失降到最低疤苹;是不是這么回事互广??

  step1:創(chuàng)建同步腳本和密碼文件
  
  #mkdir?? /etc/cron.daily.rsync
  #cd? /etc/cron.daily.rsync
  #touch rhel4home.sh? rhel4opt.sh
  #chmod 755 /etc/cron.daily.rsync/*.sh?
  #mkdir /etc/rsyncd/
  #touch /etc/rsyncd/rsyncrhel4root.secrets
  #touch /etc/rsyncd/rsyncrhel4easylife.secrets
  #chmod 600? /etc/rsyncd/rsync.*

   注: 我們在 /etc/cron.daily/中創(chuàng)建了兩個文件rhel4home.sh和rhel4opt.sh ,并且是權(quán)限是755的惫皱。創(chuàng)建了兩個密碼文件root用戶用的是rsyncrhel4root.secrets 像樊,easylife用戶用的是 rsyncrhel4easylife.secrets,權(quán)限是600旅敷;

  我們編輯rhel4home.sh生棍,內(nèi)容是如下的:

  #!/bin/sh
  #backup 192.168.145.5:/home
  /usr/bin/rsync?? -avzP? --password-file=/etc/rsyncd/rsyncrhel4root.password?? root@192.168.145.5::rhel4home?? /home/rhel4homebak/$(date +'%m-%d-%y')

  我們編輯 rhel4opt.sh ,內(nèi)容是:

  #!/bin/sh
  #backup 192.168.145.5:/opt
  /usr/bin/rsync?? -avzP? --password-file=/etc/rsyncd/rsyncrhel4easylife.secrets??? easylife@192.168.145.5::rhel4opt?? /home/rhel4hoptbak/$(date +'%m-%d-%y')

  注:你可以把rhel4home.sh和rhel4opt.sh的內(nèi)容合并到一個文件中媳谁,比如都寫到rhel4bak.sh中涂滴;

  接著我們修改 /etc/rsyncd/rsyncrhel4root.secrets和rsyncrhel4easylife.secrets的內(nèi)容;

  # echo "mike" > /etc/rsyncd/rsyncrhel4root.secrets
  # echo "keer"> /etc/rsyncd/rsyncrhel4easylife.secrets

   然后我們再/home目錄下創(chuàng)建rhel4homebak 和rhel4optbak兩個目錄晴音,意思是服務(wù)器端的rhel4home數(shù)據(jù)同步到備份服務(wù)器上的/home/rhel4homebak 下柔纵,rhel4opt數(shù)據(jù)同步到 /home/rhel4optbak/目錄下。并按年月日歸檔創(chuàng)建目錄锤躁;每天備份都存檔搁料;

  #mkdir /home/rhel4homebak
  #mkdir /home/rhel4optbak

  step2:修改crond服務(wù)器的配置文件 加入到計劃任務(wù)

  #crontab? -e

  加入下面的內(nèi)容:

  # Run daily cron jobs at 4:10 every day? backup rhel4 data:?
  10 4 * * * /usr/bin/run-parts?? /etc/cron.daily.rsync?? 1> /dev/null

  注:第一行是注釋,是說明內(nèi)容系羞,這樣能自己記住郭计。
    第二行表示在每天早上4點10分的時候,運行 /etc/cron.daily.rsync 下的可執(zhí)行腳本任務(wù)椒振;
    
  配置好后昭伸,要重啟crond 服務(wù)器;

  # killall crond??? 注:殺死crond 服務(wù)器的進(jìn)程杠人;
  # ps aux |grep crond? 注:查看一下是否被殺死勋乾;
  # /usr/sbin/crond??? 注:啟動 crond 服務(wù)器;
  # ps aux? |grep crond? 注:查看一下是否啟動了嗡善?
  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

六辑莫、FAQ

  Q:如何通過ssh進(jìn)行rsync,而且無須輸入密碼罩引?

  A:可以通過以下幾個步驟

  1. 通過ssh-keygen在server A上建立SSH keys各吨,不要指定密碼,你會在~/.ssh下看到identity和identity.pub文件
  2. 在server B上的home目錄建立子目錄.ssh
  3. 將A的identity.pub拷貝到server B上
  4. 將identity.pub加到~[user b]/.ssh/authorized_keys
  5. 于是server A上的A用戶袁铐,可通過下面命令以用戶B ssh到server B上了揭蜒。e.g. ssh -l userB serverB。這樣就使server A上的用戶A就可以ssh以用戶B的身份無需密碼登陸到server B上了剔桨。

  Q:如何通過在不危害安全的情況下通過防火墻使用rsync?
  
  A:解答如下:

   這通常有兩種情況屉更,一種是服務(wù)器在防火墻內(nèi),一種是服務(wù)器在防火墻外洒缀。無論哪種情況瑰谜,通常還是使用ssh欺冀,這時最好新建一個備份用戶,并且配置sshd 僅允許這個用戶通過RSA認(rèn)證方式進(jìn)入萨脑。如果服務(wù)器在防火墻內(nèi)隐轩,則最好限定客戶端的IP地址,拒絕其它所有連接渤早。如果客戶機在防火墻內(nèi)职车,則可以簡單允許防 火墻打開TCP端口22的ssh外發(fā)連接就ok了。

  Q:我能將更改過或者刪除的文件也備份上來嗎鹊杖?

  A:當(dāng)然可 以悴灵。你可以使用如:rsync -other -options -backupdir = ./backup-2000-2-13? ...這樣的命令來實現(xiàn)。這樣如果源文件:/path/to/some/file.c改變了仅淑,那么舊的文件就會被移到./backup- 2000-2-13/path/to/some/file.c称勋,這里這個目錄需要自己手工建立起來

  Q:我需要在防火墻上開放哪些端口以適應(yīng)rsync?
 
  A:視情況而定涯竟。rsync可以直接通過873端口的tcp連接傳文件赡鲜,也可以通過22端口的ssh來進(jìn)行文件傳遞,但你也可以通過下列命令改變它的端口:
  
  rsync --port 8730 otherhost::
  或者
  rsync -e 'ssh -p 2002' otherhost:

  Q:我如何通過rsync只復(fù)制目錄結(jié)構(gòu)庐船,忽略掉文件呢银酬?
  
  A:rsync -av --include '*/' --exclude '*' source-dir dest-dir

  Q:為什么我總會出現(xiàn)"Read-only file system"的錯誤呢?

  A:看看是否忘了設(shè)"read only = no"了

  Q:為什么我會出現(xiàn)'@ERROR: invalid gid'的錯誤呢筐钟?

  A:rsync使用時默認(rèn)是用uid=nobody;gid=nobody來運行的揩瞪,如果你的系統(tǒng)不存在nobody組的話,就會出現(xiàn)這樣的錯誤篓冲,可以試試gid = ogroup或者其它

  Q:綁定端口873失敗是怎么回事李破?
  A:如果你不是以root權(quán)限運行這一守護(hù)進(jìn)程的話,因為1024端口以下是特權(quán)端口壹将,會出現(xiàn)這樣的錯誤嗤攻。你可以用--port參數(shù)來改變。

  Q:為什么我認(rèn)證失敺谈妇菱?
  A:從你的命令行看來:你用的是

  > bash$ rsync -a 144.16.251.213::test test
  > Password:
  > @ERROR: auth failed on module test
  >
  > I dont understand this. Can somebody explain as to how to acomplish this.
  > All suggestions are welcome.

  應(yīng)該是沒有以你的用戶名登陸導(dǎo)致的問題,試試rsync -a max@192.168.1.132::test test

  Q: 出現(xiàn)以下這個訊息, 是怎么一回事?
  @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)

  A: 這是因為密碼設(shè)錯了, 無法登入成功, 請再檢查一下 rsyncd.secrets 中的密碼設(shè)定, 二端是否一致?

  Q: 出現(xiàn)以下這個訊息, 是怎么一回事?

  password file must not be other-accessible
  continuing without password file
  Password:

  A: 這表示 rsyncd.secrets 的檔案權(quán)限屬性不對, 應(yīng)設(shè)為 600暴区。請下 chmod 600 rsyncd.secrets

  Q: 出現(xiàn)以下這個訊息, 是怎么一回事?

  @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)

  A: 這通常是您的 rsyncd.conf 中的 path 路徑所設(shè)的那個目錄并不存在所致.請先用 mkdir開設(shè)好備份目錄.

寫了一個腳本闯团,每10分鐘備份一次。

注意:client的chmod 660??/etc/rsync.password???? 不然不能成功備份

*/10 * * * * /usr/bin/rsync -avzP --password-file=/etc/rsync.password rsync_name@::data /data/upload >> /dev/null 2>&1

*/10 * * * * /usr/bin/rsync -avz --password-file=/etc/rsync.password rsync_name@192.168.1.132::data /data/upload && echo $? >> /data/rsync.log.txt

完仙粱!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末房交,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子伐割,更是在濱河造成了極大的恐慌涌萤,老刑警劉巖淹遵,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異负溪,居然都是意外死亡,警方通過查閱死者的電腦和手機济炎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門川抡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人须尚,你說我怎么就攤上這事崖堤。” “怎么了耐床?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵密幔,是天一觀的道長。 經(jīng)常有香客問我撩轰,道長胯甩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任堪嫂,我火速辦了婚禮偎箫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘皆串。我一直安慰自己淹办,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布恶复。 她就那樣靜靜地躺著怜森,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谤牡。 梳的紋絲不亂的頭發(fā)上副硅,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音拓哟,去河邊找鬼想许。 笑死,一個胖子當(dāng)著我的面吹牛断序,可吹牛的內(nèi)容都是我干的流纹。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼违诗,長吁一口氣:“原來是場噩夢啊……” “哼漱凝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起诸迟,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤茸炒,失蹤者是張志新(化名)和其女友劉穎愕乎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體壁公,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡感论,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年澜掩,在試婚紗的時候發(fā)現(xiàn)自己被綠了和屎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谷扣。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡骨稿,死狀恐怖蝙云,靈堂內(nèi)的尸體忽然破棺而出崔拥,到底是詐尸還是另有隱情葱她,我是刑警寧澤昆箕,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布撞反,位于F島的核電站妥色,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏遏片。R本人自食惡果不足惜嘹害,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望丁稀。 院中可真熱鬧吼拥,春花似錦、人聲如沸线衫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽授账。三九已至枯跑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間白热,已是汗流浹背敛助。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留屋确,地道東北人纳击。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像攻臀,于是被迫代替她去往敵國和親焕数。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容