rsync同步備份

服務器搭建:http://www.linuxidc.com/Linux/2016-10/136143.htm

環境:公司有A服務器和B服務器,現在需要把A服務器的數據每天自動同步到B服務器上。

那就需要在A服務器上搭建rsync服務。

注意:兩個服務器上時間要同步,所以需要都安裝ntp時間服務器。

yum  -y  install rsync  ntp

systemctl enable  ntpd

systemctl start  ntpd

systemctl enable  rsyncd

systemctl start  rsyncd

編輯配置文件

vim /etc/rsyncd.conf

port = 873

uid = root

gid = root

use chroot = no                            默認爲yes,在傳輸文件之前首先 chroot 到 path 參數所指定的目錄下;優點,安全;缺點,需要 root 權限,不能備份指向 path 外部的符號連接所指向的目錄文件

max connections = 0                    最大併發連接數,0爲不限制

log file = /var/log/rsyncd.log

lock file = /var/run/rsyncd.lock

transfer logging = yes

timeout = 900

##模塊

[backup]                                           //此名字即客戶端使用rsync來同步的路徑

path = /home

ignore errors

auth users = jrl                                 //客戶端獲取文件的身份此用戶並不是本機中確實存在的用戶

read only = no                                  是否可以上傳文件到服務器

write only = no                                 是否可以下載

exclude = ruanjian/  qiyewenhuabu/

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

secrets file = /etc/rsyncd.passwd           //用來認證客戶端的祕鑰文件格式 USERNAME:PASSWD 此文件權限一定需要改爲600,且屬主必須與運行rsync的用戶一致。

hosts allow = 192.168.20.26

hosts deny  = *

list = false                                list --指定當客戶請求列出可以使用的模塊列表時,該模塊是否應該被列出。默認爲 true,顯示

創建密鑰文件

echo "jrl:jrl16888" > /etc/rsyncd.passwd            //文件用戶名和路徑爲上面定義,別寫錯,密碼自己定

重啓服務

systemctl restart  rsyncd

客戶端

echo 'jrl16888' >> /etc/rsyncd.passwd     //注意這裏只需要服務器rsyncd.passwd 中的密碼

chmod 600 /etc/rsyncd.passwd

設置定時同步計劃

crontab -e

0 2  * * *  rsync -auv --delete --password-file=/etc/rsyncd.passwd   jrl@192.168.20.21::backup   /home

rsync命令是一個遠程數據同步工具,可通過LAN/WAN快速同步多臺主機間的文件。rsync使用所謂的“rsync算法”來使本地和遠程兩個主機之間的文件達到同步,這個算法只傳送兩個文件的不同部分,而不是每次都整份傳送,因此速度相當快。 rsync是一個功能非常強大的工具,其命令也有很多功能特色選項,我們下面就對它的選項一一進行分析說明。

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


  1. 拷貝本地文件;當SRC和DES路徑信息都不包含有單個冒號":"分隔符時就啓動這種工作模式。

  2.使用一個遠程shell程序(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器。當DST路徑地址包含單個冒號":"分隔符時啓動該模式。

  3.使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器。當SRC地址路徑包含單個冒號":"分隔符時啓動該模式。

  4. 從遠程rsync服務器中拷貝文件到本地機。當SRC路徑信息包含"::"分隔符時啓動該模式。

  5. 從本地機器拷貝文件到遠程rsync服務器中。當DST路徑信息包含"::"分隔符時啓動該模式。

  6. 列遠程機的文件列表。這類似於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中的參數

        -a, --archive 歸檔模式,表示以遞歸方式傳輸文件,並保持所有文件屬性,等於-rlptgoD

-a 參數,相當於-rlptgoD(-r 是遞歸 -l 是鏈接文件,意思是拷貝鏈接文件;-p 表示保持文件原有權限;-t 保持文件原有時間;-g 保持文件原有用戶組;-o 保持文件原有屬主;-D 相當於塊設備文件);

   -r 是遞歸 

   -l 是鏈接文件,意思是拷貝鏈接文件;

        -p 表示保持文件原有權限;

        -t 保持文件原有時間;

        -g 保持文件原有用戶組;

        -o 保持文件原有屬主;

        -D 相當於塊設備文件;

   -z 傳輸時壓縮;

   -P 保留那些因故沒有完全傳輸的文件,以是加快隨後的再次傳輸

   -v 傳輸時的進度等信息,和-P有點關係,自己試試。可以看文檔;

   -e ssh的參數建立起加密的連接。

  -u只進行更新,防止本地新文件被重寫,注意兩者機器的時鐘的同時

  --progress是指顯示出詳細的進度情況

  --delete是指如果服務器端刪除了這一文件,那麼客戶端也相應把文件刪除,保持真正的一致

  --password-file=/password/path/file來指定密碼文件,這樣就可以在腳本中使用而無需交互式地輸入驗證密碼了,這裏需要注意的是這份密碼文件權限屬性要設得只有屬主可讀。

image.png


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章