歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 技巧:Linux rsync 同步由手動到自動

技巧:Linux rsync 同步由手動到自動

日期:2017/2/25 10:39:49   编辑:Linux教程

rsync 是一個快速增量文件傳輸工具,它可以用於在同一主機備份內部的備分,我們還可以把它作為不同主機網絡備份工具之用。本文主要講述的是如何自架rsync服務器,以實現文件傳輸、備份和鏡像。相對tar和wget來說,rsync 也有其自身的優點,比如速度快、安全、高效;

  手動的:

  首先要建立好兩台服務器之間的公鑰和密鑰,那樣就不需要每次都輸入密碼,也可以實現自動了。

  可以先使用rpm -qa |grep rsync 查看rsync是否已經安裝,軟件下載 Rysnc的主頁地址為:http://rsync.samba.org/

  本試驗的測試環境(2台,一個服務端,一個客戶端)

  rsync服務端的ip:192.168.48.60

  rsync客戶端的ip:192.168.48.148

  -----------------------------------------------

  以下先配置服務器端:

  1. 安裝rsync包

  # rpm -q rsync

  rsync-2.6.3-1

  2. rsync只使用一個配置文件就是/etc/rsyncd.conf 這個文件一般是沒有的,那就自己建一個好了

  # vi /etc/rsyncd.conf

  uid = nobody

  gid = nobody中 華 考 試 網

  max connections = 200

  timeout = 600

  use chroot = no

  read only = yes

  pid file=/var/run/rsyncd.pid

  host_allow =192.168.48.148 //客戶端的IP地址寫在這裡

  #syslog facility = local7

  #log file=/var/log/rsyncd.log

  #rsync config

  #The 'standard' things

  [rsync_gmmold] //定義同步的路徑(客戶端用這個關鍵字鏈接)

  path = /home //需要同步的路徑

  comment = gmmold //這個暫不知道

  3.啟動服務

  #/usr/bin/rsync --daemon 最後在server端將rsync以守護進程形式啟動, rsync啟動的端口為 873端口

  4.加入開機啟動

  echo "/usr/bin/rsync --daemon" >> /etc/rc.local

  5.檢查rsync時候啟動

  # ps -ef | grep rsync

  6.停止服務

  #kill `cat /var/run/rsyncd.pid`

 

 以下是客戶端的配置:

  1. 安裝rsync包

  [root@rhel403 old]# rpm -q rsync

  rsync-2.6.3-1

  2. 與服務器端同步:

  #rsync -ave ssh [email protected]:/home/ /home/ganfic/laji/ //把60機子的/home下的文件同步備份到/home/ganfic/laji/

  自動同步備份:

  1. 在tmp下建一個b.sh文件

  #vi /tmp/b.sh

  把以下內容寫到裡面去

  #!bin/sh

  rsync -ave ssh [email protected]:/home/ /home/ganfic/laji/

  :wq

  2 第2步就要涉及到crontab了,在命令行輸入

  #crontab -e

  然後把 * * * * * sh /tmp/b.sh //* * * * *部分代表每一分鐘,然後 sh /tmp/b.sh 表示運行 b.sh腳本(在下面我再補充說明),-e 使用環境變量EDITOR或RVISUAL指定的編輯器編輯crontab文件。新創建的crontab文件會放在/var/spool/cron目錄下,文件名就是用戶名,用cd /var/spool/cron後 會看到用戶文件,然後用 vi root(我是在root用戶下的)就會看到* * * * * sh /tmp/b.sh已經被轉到這裡來了。

  這樣就完成了,之後就是看看 有沒有運行了,打開日志文件,日志文件在 #vi /var/log/cron 就會看到有沒有運行了,也可以這樣,在沒有用自動運行之前,我們是用手動操作的,那時也把60的機子的/home目錄下的文件拷了下來,那樣,我們進本機的/home/ganfic/laji文件夾裡就會看到60機子下/home的內容,把這些內容都刪了,然後再過1分鐘看會不會把內容再補上,有的話就是成功了。

  Linux 防火牆是用iptables,所以我們至少在服務器端要讓你所定義的rsync 服務器端口通過,客戶端上也應該讓通過。

  iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT

  啟動rsync服務:

  /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf

  $rsync_HOME/rsync --daemon --config=/etc/rsyncd/rsyncd.conf

  補充:

  rsync 的相關知識:

  rsync命令的用法

  在配置完rsync服務器後,就可以從客戶端發出rsync命令來實現各種同步的操作。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]

Copyright © Linux教程網 All Rights Reserved