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/