站長資訊網
最全最豐富的資訊網站

通過rsync實現遠程同步

正確、有效的備份方案是保障系統及數據安全的重要手段,在服務器中,通常會結合計劃任務、Shell腳本來執行本地備份,為了進一步提高備份的可靠性,使用異地備份也是非常有必要的。

比如針對web站點的同步備份,如果想要實現快速、安全、高效的異地備份,就需要使用到——rsync。

rsync簡介

rsync(Remote Sync,遠程同步)是一個開源的快速備份工具,可以在不同主機之間鏡像同步整個目錄樹,支持增量備份,保持鏈接和權限,且采用優化的同步算法,傳輸前執行壓縮,因此非常適用于異地備份、鏡像服務器等應用。

rsync的官方站點:http://rsync.samba.org/ ,目前最新版本是3.1.3,由Wayne Davison.進行維護,作為一種最常用的文件備份工具,rsync往往是Linux和UNIX系統默認安裝的基本組件之一。

rsync是一款快速增量備份工具,支持:  (1)本地復制;  (2)與其他SSH同步;  (3)與rsync主機同步。

在遠程同步任務中,負責發起rsync同步操作的客戶機稱為發起端,而負責相應來自客戶機的rsync同步操作的服務器稱為同步源。在同步過程中,同步源負責提供文檔的原始位置,發起端應對該位置有讀取權限。如圖:
通過rsync實現遠程同步

配置rsync源

配置rsync源服務器大致分為三步:  (1)建立rsync配置文件;  (2)為備份賬戶創建數據文件;  (3)啟動rsync服務。

(1)建立rsync配置文件

在CentOS 7系統之前/etc/rsyncd.conf文件默認不存在,CentOS 7開始已經有這樣的文件,并且其中放置了模板參考信息(根據實際情況編寫需要的內容,注意格式)。

[root@localhost ~]# vim /etc/rsyncd.conf   uid = nobody                                                                //啟用匿名用戶  gid = nobody                                                                 use chroot = yes                                                          //禁錮在源目錄  address = 192.168.1.1                                                //監聽地址  port 873                                                                      //監聽端口  log file = /var/log/rsyncd.log                                       //日志文件存放位置  pid file = /var/run/rsyncd.pid                                      //存放進程ID的文件位置  hosts allow = 192.168.1.0/24                                    //允許訪問的客戶機地址  [wwwroot]                                                                  //共享模塊名稱          path = /var/www/html                                        //源目錄的實際路徑          comment = aaa                                                 //描述(可以省略)          read only = no                                                   //是否為只讀          dont compress = *.gz *.bz2 *.rar *.zip               //同步時不再壓縮的文件類型          auth users = backuper                                      //授權賬戶          secrets file = /etc/rsyncd_users.db                   //存放賬戶信息的數據文件

基于安全性考慮,對于rsync的同步源最好僅允許以只讀方式做同步。另外,同步可以采用匿名的方式,只要將其中的“auth users”和“secrets file”配置項去除即可!

(2)為備份賬號創建數據文件

根據rsync的配置文件內容,創建賬號數據文件。每行一個用戶,用戶和密碼之間用冒號進行分隔。

[root@localhost ~]# vim /etc/rsyncd_users.db  backuper:123456

由于賬號信息采用明文存放,因此需要調整文件權限,避免賬號信息泄露。

[root@localhost ~]# chmod 600 /etc/rsyncd_users.db

備份用戶應對源目錄具有讀取權限。

[root@localhost ~]# ls -ld /var/www/html  drwxr-xr-x. 2 root root 6 11月 15 2016 /var/www/html

(3)啟動rsync服務

[root@localhost ~]# rsync --daemon  [root@localhost ~]# netstat -anpt | grep rsync  tcp        0      0 192.168.1.1:873         0.0.0.0:*               LISTEN      44001/rsync

如果需要重啟rsync服務,需要:

[root@localhost ~]# kill  $(cat /var/run/rsyncd.pid)  //停止服務  [root@localhost ~]# rsync --daemon  //啟動服務
[root@localhost ~]# kill -9 $(cat /var/run/rsyncd.pid)

或者直接使用“netstat -anpt | grep rsync”命令查出進程號,使用“kill 進程號”一樣。
使用第一種方法停止rsync服務必須刪除存放rsync服務進程的文件:

[root@localhost ~]# rm -rf /var/run/rsyncd.pid

使用rsync備份工具

配置好rsync同步源服務器之后,客戶端就可以使用rsync工具來執行遠程同步了。

rsync命令的選項:  -r:遞歸模式,包含目錄及子目錄中所有文件  -l:對于符號鏈接文件仍然復制為符號鏈接文件  -p:保留文件的權限標記  -t:保留文件的時間標記  -g:保留文件的屬組標記(僅超級用戶使用)  -o:保留文件的屬主標記(僅超級用戶使用)  -D:保留設備文件及其他特殊文件  -a:歸檔模式,遞歸并保留對象屬性,等同于 -rlptgoD  -v:顯示同步過程的詳細(verbose)信息  -z:在傳輸文件時進行壓縮(compress)  -H:保留硬連接文件  -A:保留ACL屬性信息  --delete:刪除目標位置有而原始位置沒有的文件  --checksum:根據對象的校驗和來決定是否跳過文件

rsync是一款快速增量備份工具,支持:
(1)本地復制;
(2)與其他SSH同步;
(3)與rsync主機同步。

(1)本地復制
[root@localhost ~]# rsync /etc/passwd 123.txt  //類似于cp命令
(2)與其他SSH同步
[root@localhost ~]# rsync -av root@192.168.1.2:/root/123.txt .  root@192.168.1.2's password: 
(3)與rsync主機同步
[root@localhost ~]# rsync -avz backuper@192.168.1.1::wwwroot /root  或者  [root@localhost ~]# rsync -avz rsync://backuper@192.168.1.1/wwwroot /root

這兩種命令效果是一樣!
上傳只需將目錄調換順序即可(確保對上傳的目錄具有寫入權限)
在同步源端輸入以下命令,方可執行寫入權限

[root@localhost ~]#chmod 777  /var/www/html  [root@localhost ~]# rsync -avz /root backuper@192.168.1.1::wwwroot 

但是在現實工作環境中,備份工作通常是按計劃重復執行的,比如:

[root@localhost ~]# vim /root/123.pass  123456  //任意創建一個文件用于存放rsync授權用戶的密碼信息  [root@localhost ~]# chmod 600 /root/123.pass  //必須設定600權限,否則執行時將會報錯  [root@localhost ~]# crontab -e  //創建計劃任務  30 22 * * * /usr/bin/rsync -az --delete --password-file=/root/123.pass backuper@192.168.1.1::wwwroot /a  //每天晚上22:30執行腳本  [root@localhost ~]# systemctl restart crond  //重新啟動crond服務

關于crond計劃任務配置文件的格式(從上到下):
通過rsync實現遠程同步

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
精品国产麻豆免费网站| 久久久精品国产sm调教网站| 国产福利电影一区二区三区,日韩伦理电影在线福 | 国产亚洲精品a在线无码| heyzo加勒比高清国产精品| 国产69久久精品成人看| 日韩精品一区二区三区中文版| 国产精品久线观看视频| 亚洲国产精品综合久久网各 | 国产精品线在线精品| 亚洲综合一区无码精品| 精品国产一区二区三区无码| 亚洲精品第一国产综合精品 | 日韩亚洲AV无码一区二区不卡| 国产精品亚洲专一区二区三区| 久久精品女人天堂AV免费观看| 精品香蕉一区二区三区| 国产精品久久永久免费| 亚洲AV无码乱码麻豆精品国产 | 国产一精品一aⅴ一免费| 国产精品嫩草影院在线看| 精品国产一区二区三区久久影院 | 18精品久久久无码午夜福利| 午夜精品久视频在线观看| 久久精品国产亚洲| 国产成人精品一区二区秒拍| 奇米精品一区二区三区在线观看| 精品无人区麻豆乱码1区2区| 精品国产福利久久久| 一本色道久久88精品综合| 亚洲精品午夜国产VA久久成人| 亚洲热线99精品视频| 国产网红无码精品视频| 国产最新进精品视频| 国产精品天天看天天狠| WWW国产精品内射熟女| 国产成人精品午夜视频'| 亚洲精品自偷自拍无码| 久久99精品久久久久久清纯| 国自产精品手机在线视频香蕉 | 久久亚洲美女精品国产精品|