rsync備份工具使用

標(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)題,中斷.未完全同步前,是隱藏文件.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容