標(biāo)簽(空格分隔): Linux 運(yùn)維
Rsync(遠(yuǎn)程同步Remote synchronization) https://www.samba.org/ftp/rsync/rsync.html
backup服務(wù)器: 172.16.1.41
nfs服務(wù)器: 172.16.1.31
具有可使本地和遠(yuǎn)程兩臺(tái)主機(jī)之間的數(shù)據(jù)快速?gòu)?fù)制同步鏡像 遠(yuǎn)程備份的功能.一個(gè)rsync相當(dāng)于scp,cp,rm,并且更優(yōu)秀.
增量備份:rsync通過(guò)其獨(dú)特的"quick check"算法,它僅同步大小或者最后修改時(shí)間發(fā)生變化的文件或目錄.也可以實(shí)現(xiàn)只同步一個(gè)文件里有變化的內(nèi)容部分.因此性能及效率上更好.
企業(yè)工作場(chǎng)景說(shuō)明(實(shí)時(shí)備份,定時(shí)備份): cron+rsync
用法示例(3種:本地,遠(yuǎn)程shell,daemon模式):
Local: rsync [OPTION...] SRC... [DEST]
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST] 如rsync -e 'ssh -p 22' -avz /etc/hsots james@10.0.0.100
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Access via rsync daemon: 需要設(shè)置配置文件
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
Usages with just one SRC arg and no DEST arg will list the source files instead of copy-ing.
-a, --archive: 歸檔模式
-v, --verbose: 詳細(xì)信息。
-z, --compress: compress file data during the transfer
-e, --rsh=COMMAND: specify the remote shell to use
-r, --recursive: 對(duì)目錄遞歸 recurse into directories
-t, --times: preserve modification times 維持mtime
--delete: delete extraneous files from dest dirs 即刪除目標(biāo)文件與源不同的地方,將目標(biāo)與源保持相同
-l, --links copy symlinks as symlinks
-L, --copy-links:ransform symlink into referent file/dir
-p, --perms: 保持權(quán)限preserve permissions
--exclude=PATTERN exclude files matching PATTERN
--exclude-from=FILE read exclude patterns from FILE
--bwlimit=KBPS: limit I/O bandwidth; KBytes per second 限制傳輸帶寬為指定字節(jié)每秒.
rsync -avz --delete /dev/null /tmp/haha.txt # 將后一個(gè)參數(shù)(haha)與第一個(gè)保持一致
rsync -avz /etc/host /tmp/ (本地)
rsync -avz -e "ssh -p 22" root@192.168.131.130:/tmp/ /opt/ (通過(guò)遠(yuǎn)程shell pull)
rsync -avz -e "ssh -p 22" /tmp/ root@192.168.131.130:/tmp/ (通過(guò)遠(yuǎn)程shell push)
daemon模式服務(wù)端配置:
(1) 將一臺(tái)服務(wù)器(如backup)設(shè)置為daemon端.在其上創(chuàng)建rsync的配置文件 /etc/rsyncd.conf并做如下編輯(可以man rsyncd.conf):
vim /etc/rsyncd.conf 內(nèi)容如下
#Rsync server
#created by huangjian 17:31 2016/5/30
##rsyncd.conf start##
#客戶(hù)端以如下兩行的用戶(hù)權(quán)限連過(guò)來(lái)
uid = rsync
gid = rsync
#與安全相關(guān)
use chroot = no
#設(shè)置可以允許多少客戶(hù)端的連接
max connections = 2000
#超時(shí)600秒即自動(dòng)斷開(kāi)
timeout = 600
#Rsync daemon進(jìn)程號(hào)存放的文件地址
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
#忽略錯(cuò)誤
ignore errors
read only = false
#客戶(hù)端對(duì)服務(wù)器沒(méi)有列表查看的功能
list = false
hosts allow = 172.16.1.0/24
#host deny = 0.0.0.0/32
#相當(dāng)于用來(lái)作驗(yàn)證的名字(不需要?jiǎng)?chuàng)建),放在secrets file中的格式為: rsync_backup:pwd.
auth users = rsync_backup
secrets file = /etc/rsync.password
##################################
[bkup] # 表示共享目錄
comment = www by uangianlap 17:31 2016/5/30
#backup dir
path = /backup
(2) 在服務(wù)器端創(chuàng)建配置文件(/etc/rsyncd.conf)里指定uid gid的相應(yīng)虛擬用戶(hù).
useradd -M -s /sbin/nologin rsync
(3) 在服務(wù)器端創(chuàng)建指定的密碼文件并寫(xiě)入配置文件中定義好客戶(hù)端的驗(yàn)證名和密碼(這里是rsync_backup與oldboy),并設(shè)置密碼文件只有root用戶(hù)有權(quán)限
echo "rsync_backup:uangianlap" > /etc/rsync.password
chmod 600 /etc/rsync.password
(4) 在服務(wù)器端創(chuàng)建備份目錄
mkdir /backup
chown -R rsync.rsync /backup
(5) 在服務(wù)器端啟動(dòng)服務(wù)(以后可以自己在/etc/init.d/下寫(xiě)啟動(dòng)服務(wù)腳本),ps -ef | grep rsync 查看服務(wù)是否開(kāi)啟.
rsync --daemon
netstat -lntup #可以查看rsync默認(rèn)是監(jiān)聽(tīng)在873端口上的.
(6) 將rsync啟動(dòng)命令放入開(kāi)機(jī)啟動(dòng)腳本中
echo "rsync --daemon" >> /etc/rc.local
daemon模式客戶(hù)端操作:
(1) 創(chuàng)建密碼文件/etc/rsync.password,只需要在其中填寫(xiě)密碼即可(連接的時(shí)候帶了用戶(hù)(下圖中的USER)).
echo "uangianlap" > /etc/rsync.password
chmod 600 /etc/rsync.password (經(jīng)測(cè)試為必須,否則--passwrod-file不起作用)
(2) 用daemon的方式進(jìn)行文件的"推送"或"拉取".(在客戶(hù)端操作,假設(shè)客戶(hù)端備份文件放在/tmp目錄)
rsync -avz /tmp/ rsync_backup@172.16.1.41::bkup # 需要手動(dòng)輸入密碼
或者下面這種不需要手動(dòng)輸入密碼
rsync -avz --password-file=/etc/rsync.password /tmp/ rsync_backup@172.16.1.41::bkup
Rsync優(yōu)點(diǎn):
- 增量備份同步,支持socket(daemon),集中備份
Rsync缺點(diǎn):
- 大量小文件同步的時(shí)候,比對(duì)時(shí)間較長(zhǎng),有時(shí)rsync進(jìn)程停止.
解決: 打包同步 或 drbd(文件系統(tǒng)同步復(fù)制block) - 同步大文件, 10G這樣的大文件有時(shí)也會(huì)有問(wèn)題,中斷.未完全同步前,是隱藏文件.