rsync遠程同步

rsync遠程同步
一、配置rsync源服務器
1、配置SSH備份源
(1)新建備份用戶rget、rput分別用來下載、上傳
[root@host1 ~]# useradd rget

[root@host1 ~]# passwd rget                #設置密碼爲rget

[root@host1 ~]# useradd rput

[root@host1 ~]# passwd rput                #設置密碼爲rput

確認sshd服務正常運行,且允許用戶rget、rput訪問
[root@host1 ~]# vim /etc/ssh/sshd_config
122 UseDNS no                                    #去掉註釋
139 AllowUsers rget rput root                #添加此行可以限定遠程登錄用戶

[root@host1 ~]# /etc/init.d/sshd restart

調整/var/www/html/目錄權限,使rget用戶有權讀取、rput用戶有權寫入
[root@host1 ~]# ls -ld /var/www/html/
drwxr-xr-x 6 root root 4096 Jun 30 23:27 /var/www/html/

[root@host1 ~]# setfacl -R -m u:rput:rwx /var/www/html/        #設置ACL

[root@host1 ~]# ls -ld /var/www/html/
drwxr-xr-x+ 6 root root 4096 Jun 30 23:27 /var/www/html/

[root@host1 ~]# getfacl /var/www/html/
getfacl: Removing leading '/' from absolute path names
# file: var/www/html/
# owner: root
# group: root
user::rwx
user:rput:rwx
group::r-x
mask::rwx
other::r-x    

配置rsync備份源
(1)建立/etc/rsyncd.conf 配置文件
[root@host1 ~]# vim /etc/rsyncd.conf                        #自己創建
uid = nobody
gid = nobody
use chroot = yes                                                 #禁錮在源目錄
adress = 192.168.10.1                                        #監聽地址(服務器IP地址)
port 873                                                            #監聽端口(服務器端口)
log file = /var/log/rsyncd.log                                #日誌文件位置
pid file = /var/run/rsyncd.pid                               #存放進程ID的文件位置
hosts allow = 192.168.10.0/24             #允許訪問的客戶機地址
[wwwroot]                                         #共享模塊名稱
        path = /var/www/html                #源目錄的實際路徑
        read only = yes                         #是否爲只讀
comment = Document Root of host1.benet.com        #描述
        dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z    #同步時不再壓縮的文件類型
auth users = backup                            #授權賬戶
secrets file = /etc/rsyncd_users.db        #存放賬戶信息的數據文件    
基於安全性考慮,對於rsync的備份源最好僅允許以只讀方式做下行同步,若確實需要做上行同步時,建議改用SSH備份源。另外,下行備份可以採用匿名的方式,只要將其中的“auth users”和“secrets file”配置記錄去掉就可以了。

爲備份賬戶創建數據文件
[root@host1 ~]# cat /etc/rsyncd_users.db
backup:pwd123

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

啓動rsync服務程序,運行參數爲“--daemon”
[root@host1 ~]# rsync --daemon                    #啓動rsync服務

[root@host1 ~]# netstat -anpt | grep rsync
tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      1522/rsync         
tcp        0      0 :::873                      :::*                        LISTEN      1522/rsync

[root@host1 ~]# kill $(cat /var/run/rsyncd.pid)            #關閉rsync服務

[root@host1 ~]# cat /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
#       allows crc checksumming etc.
service rsync
{
        disable = no                        #將yes修改爲no
        flags           = IPv6
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}    

[root@host1 ~]# yum -y install xinetd                          #安裝xinetd軟件包               
[root@host1 ~]# /etc/init.d/xinetd restart                    #啓動xinetd 服務

配置備份源
命令格式及常用備份選項
    備份的基本格式爲“rsync [選項] 原始位置 目標位置”,其中常用的一些命令選項如下:

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

配置源的表示方法
在執行遠程同步任務時,rsync命令需要指定備份源服務器中的資源位置。對於下行備份操作,備份源對應“原始位置”;對於上行備份操作,備份源對應“目標位置”。根據備份源的類型不同,其資源表示方式也不同。

SSH備份源
[root@host2 ~]# rsync -avz [email protected]:/var/www/html/ /var/www/html/

rsync備份源
[root@host2 ~]# rsync -avz [email protected]::wwwroot /var/www/html/

[root@host2 ~]# rsync -avz rsync://[email protected]/wwwroot /var/www/html/

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