業(yè)務(wù)場景:
公司的業(yè)務(wù)日志量很大搏存,需要經(jīng)常壓縮日志并上傳至歸檔服務(wù)器。所以寫了腳本自動(dòng)上傳業(yè)務(wù)日志矢洲。由于ftp容易中斷璧眠,所以使用rsync可進(jìn)行斷點(diǎn)續(xù)傳。
rsync安裝配置
1.在日志歸檔服務(wù)器上安裝server端
可以直接yum安裝读虏,但是如果是想定制使用责静,建議編譯安裝,到時(shí)候服務(wù)器磁盤滿了盖桥,
需要換服務(wù)器的時(shí)候直接把編譯好的目錄打包帶走直接就能用了灾螃,免去二次安裝的麻煩。
命令如下:
wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz
tar -zxvf rsync-3.1.2.tar.gz
cd rsync-3.1.2
mkdir -p /opt/rsync
./configure --prefix=/opt/rsync
make && make
至此安裝完畢揩徊,rsync就安裝到你的/opt/rsync目錄下了腰鬼。
2.配置rsync
rsync的配置文件是要自己配置的,以及以一些提示文件等都要手動(dòng)創(chuàng)建塑荒。這里為了方便統(tǒng)一熄赡,我在rsync程序目錄下以conf文件夾作為配置目錄。
mkdir -p /opt/rsync/conf \
mkdir -p /opt/rsync/log \
cd /opt/rsync/conf \
touch rsync.conf \
touch rsyncd.motd \
touch rsync.pass
文件創(chuàng)建完了齿税,開始編輯rsync.conf文件
vim /opt/rsync/conf/rsync.conf
rsync.conf文件例子
pid file = /opt/rsync/conf/rsync.pid ###定義pid文件
lock file=/opt/rsync/conf/rsync.lock
port = 8730 ###自定義端口彼硫,默認(rèn)為873,建議修改其他成端口
uid = ftp ###定義文件上傳后的屬主
gid = ftp ###定義文件上傳后的屬組
use chroot = no
max connections = 10 ###定義最大連接數(shù)
motd file = /opt/rsync/conf/rsyncd.motd ##定義傳輸后提示文字凌箕,可以自己隨意編輯此文件中的文字拧篮。
log file = /opt/rsync/log/rsync.log ###定義日志目錄,方便排錯(cuò)
[Test] ###定義模塊名稱
path = /data/backup/Test ##定義此模塊目錄
list = yes
auth users = dimple ##定義上傳用戶
read only = no ##定義文件夾不是只讀
write only = no ##定義文件夾不是只寫
ignore errors
secrets file = /opt/rsync/conf/rsync.pass ##定義密碼認(rèn)證文件牵舱,后面詳細(xì)說
例子中注釋方便大家理解串绩,復(fù)制上去后可以刪除。如果你需要更強(qiáng)大的功能可以去查看官方文檔仆葡。rsync模塊真的很好用赏参,可以根據(jù)不同的業(yè)務(wù)線自己定制需求志笼。
編輯rsyncd.motd文件
此文件只是用于顯示客戶端鏈接rsync服務(wù)端成功后的提示信息,可以隨意設(shè)置把篓,此處就不舉例子了纫溃。
編輯rsyncd.pass
vim /opt/rsync/conf/rsync.pass
這個(gè)文件是密鑰文件,服務(wù)端需要在模塊里定義不同的密鑰文件韧掩,也可以全局定義紊浩。
格式為: user:pass
例子:haha:123456
注意:客戶端如果需要用密鑰文件免輸入密碼傳輸文件,則只需要在文件中寫入密碼即可疗锐,無需用名
例如:客戶端文件為/opt/rsync.pass,則文件內(nèi)容為123456即可坊谁。
啟動(dòng)rsync
啟動(dòng)rsync命令,建議加上-daemon守護(hù)模式啟動(dòng)滑臊,然后指定配置文件
/opt/rsync/bin/rsync --daemon --config /opt/rsync/conf/rsync.conf
2.客戶端上傳文件測試
客戶端上傳文件口芍,建議寫腳本上傳,然后定義秘鑰文件雇卷,可以免密碼輸入操作鬓椭,放在定時(shí)任務(wù)中最好,可以定時(shí)備份日志关划。
rsync上傳總共有6種模式小染,大家有興趣可以看看
這里我用的指定模塊上傳的方式,加了一些特定的參數(shù)贮折,制定了端口和秘鑰文件裤翩。
rsync -rlpvDR --port=8730 --bwlimit=30000 --password-file=/opt/rsync.pass test.txt haha@rsync_ip::Test
目前已經(jīng)在生產(chǎn)服務(wù)器上用腳本調(diào)用rsync大規(guī)模歸檔備份日志,rsync支持?jǐn)帱c(diǎn)續(xù)傳调榄,如果中斷的話再傳一次就可以了踊赠。
而且還有校驗(yàn)MD5的功能用起來很方便。