rsync同步備份
環境:公司有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同步備份