rsync介紹
創(chuàng)新互聯(lián)主要業(yè)務(wù)有網(wǎng)站營(yíng)銷策劃、網(wǎng)站制作、網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、成都微信小程序、H5技術(shù)、程序開發(fā)等業(yè)務(wù)。一次合作終身朋友,是我們奉行的宗旨;我們不僅僅把客戶當(dāng)客戶,還把客戶視為我們的合作伙伴,在開展業(yè)務(wù)的過(guò)程中,公司還積累了豐富的行業(yè)經(jīng)驗(yàn)、成都全網(wǎng)營(yíng)銷推廣資源和合作伙伴關(guān)系資源,并逐漸建立起規(guī)范的客戶服務(wù)和保障體系。
rsync,英文全稱是remote synchronize,是一款實(shí)現(xiàn)遠(yuǎn)程同步功能的免費(fèi)軟件,它在同步文件的同時(shí),可以保持原來(lái)文件的權(quán)限、時(shí)間、軟硬鏈接等附加信息。 rsync提供了一個(gè)客戶機(jī)和遠(yuǎn)程文件服務(wù)器的文件同步的快速方法,而且可以通過(guò)ssh方式來(lái)傳輸文件。甚至還可以實(shí)現(xiàn)只同步一個(gè)文件里有變化的內(nèi)容部分,所以可以實(shí)現(xiàn)快速的同步備份數(shù)據(jù)。同時(shí),rsync還可以實(shí)現(xiàn)同步本地?cái)?shù)據(jù)、刪除文件和目錄的功能。
Inotify 是一個(gè) Linux 內(nèi)核特性,它監(jiān)控文件系統(tǒng),并且及時(shí)向?qū)iT的應(yīng)用程序發(fā)出相關(guān)的事件警告,比如刪除、讀、寫和卸載操作等。您還可以跟蹤活動(dòng)的源頭和目標(biāo)等細(xì)節(jié)。
如果要實(shí)現(xiàn)定時(shí)同步數(shù)據(jù),可以在客戶端將rsync加入定時(shí)任務(wù),但是定時(shí)任務(wù)的同步時(shí)間粒度并不能達(dá)到實(shí)時(shí)同步的要求。在Linux kernel 2.6.13后提供了inotify文件系統(tǒng)監(jiān)控機(jī)制。通過(guò)rsync+inotify組合可以實(shí)現(xiàn)實(shí)時(shí)同步。
源服務(wù)器:192.168.177.132(rsync,httpd)
發(fā)起端:192.168.177.132(rsync,httpd,inotify-tools)
# rpm -q rsync //查看rsync有沒(méi)有安裝
# vim /etc/rsyncd.conf //rsync的配置文件
uid = nobody
gid = nobody
use chroot = yes
address = 192.168.177.132
port 873
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.177.0/24
[wwwroot]
path = /var/www/html
comment = www.kgc.cn
read only = yes
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
auth users = backuper
secrets file = /etc/rsyncd_users.db
# vim /etc/rsyncd_users.db
backuper:abc123 //賬號(hào)跟密碼的格式
# chmod 600 /etc/rsyncd_users.db
# yum install httpd -y //安裝web服務(wù)
# rsync --daemon //啟動(dòng)rsync服務(wù)
# systemctl stop firewalld.service //關(guān)閉防火墻
# setenforce 0 //增強(qiáng)性安全功能
# chmod 777 /var/www/html/
# cd /var/www/html
# echo "this is test" > 123.txt
# systemctl stop firewalld.service
# setenforce 0 //必須先關(guān)閉防火墻
交互,輸入的是源服務(wù)器的地址
# rsync -avz backuper@192.168.177.132::wwwroot /opt/
免交互,無(wú)需輸入密碼
# vim /etc/server.pass
# chmod 600 /etc/server.pass
# rsync -az --delete --password-file=/etc/server.pass backuper@192.168.177.132::wwwroot /opt
inotify裝在發(fā)起端
rsync在源服務(wù)器上
源服務(wù)器:
# vim /etc/rsyncd.conf
read only = no
# pkill -9 rsync
# cd /var/run/
# rm -rf rsyncd.pid //刪除pid進(jìn)程
# rsync --daemon //重啟服務(wù)
發(fā)起端:
# chmod 777 /var/www/html/
# tar zxvf inotify-tools-3.14.tar.gz -C /opt //解壓
# cd inotify-tools-3.14/
./configure
# yum install gcc gcc-c++ -y //安裝編譯環(huán)境
# make && make install
# vim /etc/sysctl.conf //進(jìn)行優(yōu)化
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
# sysctl -p //立即生效
# inotifywait -mrq -e modify,create,move,delete /var/www/html/ //對(duì)站點(diǎn)進(jìn)行監(jiān)控
# vim /opt/inotify.sh //編寫能同步的腳本
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /var/www/html/ backuper@192.168.177.132::wwwroot/"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
if [ $(pgrep rsync | wc -l) -le 0 ] ; then
$RSYNC_CMD
fi
done
# chmod +x inotify.sh
# ./inotify.sh
新聞名稱:rsync+inotify實(shí)現(xiàn)遠(yuǎn)程同步
分享URL:http://jinyejixie.com/article24/ijghce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、商城網(wǎng)站、App開發(fā)、域名注冊(cè)、品牌網(wǎng)站制作、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)