Rsync的工作方式
單個主機本地之間的數據傳輸(此時類似於cp命令的功能)。
藉助rcp,ssh等同到來傳輸數據(此時類似於scp命令的功能)。
以守護進程(socket)的方式傳輸數據(這個是rsync自身的重要的功能)。
Rsync 常用參數 -avz或者-vzrtopg
-v 詳細模式輸出,傳輸時的進度等信息
-z 傳輸時進行壓縮以提高傳輸效率,--compress-level=NUM 可按級別壓縮
-a 歸檔模式,表示以遞歸方式傳輸文件,並保持所有文件屬性,等於-rtopgDl.
-r 對子目錄以遞歸模式
-t 保持文件時間信息
-o 保持文件屬主信息
-p 保持文件權限
-g 保持文件屬組信息
-P 顯示同步的過程及傳輸時的進度等信息
-D 保持設備文件信息
-l 保留軟鏈接
-e 指定通道
--exclude=PATTERN exclude files matching PATTERN
--exclude-from=FILE read exclude patterns from FILE
cp -a /etc/hosts /tmp/ rsync -avz /etc/hosts /tmp/ rsync --delete /null/ tmp/
推送scp /etc/hosts ***@********:/tmp/ 推送rsync -avz -e 'ssh ' /etc/hosts ***@********:/tmp/ 拉取scp ***@********:/etc/hosts /tmp/ 拉取rsync -avz -e 'ssh ' ***@********:/etc/hosts /tmp/
守護進程方式備份拓撲
服務端:
創建配置文件/etc/rsyncd.conf
#rsyncd_config start
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid #進程號保存地址
lock file = /var/run/rsyncd.lock#鎖(上廁所)
log file = /var/log/rsyncd.log
[Boris]
path = /Boris/
ignore errors
read only = false
list = false
hosts allow = 10.0.0.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
#rsync_config end
默認端口是873
mkdir /Boris useradd rsync -s /sbin/nologin chown -R rsync.rsync /Boris echo "rsync_backup:Boris" > /etc/rsync.password chmod 600 /etc/rsync.password
關閉Selinux,iptables
啓動
rsync --daemon
客戶端:
echo "Boris" > /etc/rsync.password#客戶端secrets文件只有密碼 chmod 600 /etc/rsync.password
拉:
1.rsync -avz rsync_backup@*****::Boris /data --password-file=/etc/rsync.password #密碼爲虛擬用戶密碼 2.rsync -avz rsync://rsync_backup@*****/Boris /data --password-file=/etc/rsync.password
推:
1.rsync -avz /data/ rsync_backup@*****::Boris --password-file=/etc/rsync.password #密碼爲虛擬用戶密碼 2.rsync -avz /data/ rsync://rsync_backup@*****//Boris --password-file=/etc/rsync.password
重啓rsync
pkill rsync #關閉rsync服務 kill `cat /var/run/rsyncd.pid` rsync --daemon #啓動rsync服務 ps -ef | grep rsync #檢測rsync服務
日誌檢查
cat /var/log/rsyncd.log
排除文件:
客戶端排:
--exclude=**
--exclude-from=FILE
排除單個:
rsync -avz --exclude=a /data/ rsync_backup@*****::Boris --password-file=/etc/rsync.password
排除多個:
rsync -avz --exclude={a,b} /data/ rsync_backup@*****::Boris --password-file=/etc/rsync.password
服務端:
vim /etc/rsyncd.conf
加入 exclude = a b c/d
無差異備份:風險較大
--delete
多模塊:
創建配置文件/etc/rsyncd.conf
#rsyncd_config start
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid #進程號保存地址
lock file = /var/run/rsyncd.lock#鎖(上廁所)
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 10.0.0.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[Boris]
path = /Boris/
[data]
path = /data/
#rsync_config end
Inotify的工作方式:
由inotify監控變化從而調用rsync同步數據。