rsync遠程同步

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

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

[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                #添加此行能夠限定遠程登陸用戶 ssh

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

調整/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/ tcp

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

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

[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     rest

配置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 rget@192.168.10.1:/var/www/html/ /var/www/html/

rsync備份源 [root@host2 ~]# rsync -avz backup@192.168.10.1::wwwroot /var/www/html/ 或 [root@host2 ~]# rsync -avz rsync://backup@192.168.10.1/wwwroot /var/www/html/

相關文章
相關標籤/搜索