您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“怎么使用rsync實現遠程同步”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“怎么使用rsync實現遠程同步”這篇文章吧。
rsync是可以實現增量備份的工具。配合任務計劃,rsync能實現定時或間隔同步,配合inotify或sersync,可以實現觸發式的實時同步了?
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源服務器大致分為三步: (1)建立rsync配置文件; (2)為備份賬戶創建數據文件; (3)啟動rsync服務。
(1)建立rsync配置文件
在CentOS 7系統之前/etc/rsyncd.conf文件默認不存在,CentOS 7開始已經有這樣的文件,并且其中放置了模板參考信息(根據實際情況編寫需要的內容,注意格式)。
[root@localhost ~]# vim /etc/rsyncd.confuid = 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.dbbackuper:123456
由于賬號信息采用明文存放,因此需要調整文件權限,避免賬號信息泄露。
[root@localhost ~]# chmod 600 /etc/rsyncd_users.db
備份用戶應對源目錄具有讀取權限。
[root@localhost ~]# ls -ld /var/www/htmldrwxr-xr-x. 2 root root 6 11月 15 2016 /var/www/html
(3)啟動rsync服務
[root@localhost ~]# rsync --daemon[root@localhost ~]# netstat -anpt | grep rsynctcp 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命令的選項:-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 o+w /var/www/html[root@localhost ~]# ls -ld /var/www/htmldrwxr-xrwx. 2 root root 6 8月 17 16:47 /var/www/html[root@localhost ~]# rsync -avz /root backuper@192.168.1.1::wwwroot
但是在現實工作環境中,備份工作通常是按計劃重復執行的,比如:
[root@localhost ~]# vim /root/123.pass123456 //任意創建一個文件用于存放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實現遠程同步”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。