1. 程式人生 > >rsync同步備份

rsync同步備份

因此 並不是 ges ogg pre 無需 ros connect 進度

服務器搭建: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來指定密碼文件,這樣就可以在腳本中使用而無需交互式地輸入驗證密碼了,這裏需要註意的是這份密碼文件權限屬性要設得只有屬主可讀。

技術分享圖片技術分享圖片


rsync同步備份