日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

rsync+inotify远程同步

發(fā)布時(shí)間:2024/2/28 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rsync+inotify远程同步 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

rsync+inotify遠(yuǎn)程同步

  • 一、rsync
    • 1、rsync服務(wù)器
    • 2、同步方式
    • 3、rsync命令
    • 4、配置源的兩種表示方法
    • 5、實(shí)驗(yàn):本地復(fù)制(下行復(fù)制)
  • 二、inotify
    • 1、簡介
    • 2、inotifywait
    • 3、實(shí)驗(yàn):rsync+inotify

一、rsync

1、rsync服務(wù)器

  • 【1】rsync是一款開源的、快速的、多功能的、可實(shí)現(xiàn)全量及增量的本地或遠(yuǎn)程數(shù)據(jù)同步備份的優(yōu)秀工具。并且可以不進(jìn)行改變?cè)袛?shù)據(jù)的屬性信息,實(shí)現(xiàn)數(shù)據(jù)的備份遷移特性。
  • 【2】rsync軟件適用于unix/linux/windows等多種操作系統(tǒng)平臺(tái)
  • 【3】rsync是一個(gè)快速和非常同樣的文件復(fù)制工具。它能本能復(fù)制,遠(yuǎn)程復(fù)制,或者遠(yuǎn)程守護(hù)進(jìn)程方式復(fù)制,它提供了大量的參數(shù)來控制其行為的各個(gè)方面,并且允許非常靈活的方式來實(shí)現(xiàn)文件的傳輸復(fù)制
  • 【4】以其delta-transfer算法聞名。
  • 【5】rsync監(jiān)聽端口:873
  • 【6】rsync運(yùn)行模式:C/S

2、同步方式

  • 【1】全量備份:
    • 原有的數(shù)據(jù)全部傳送
    • 把原來的文件和新的文件一起統(tǒng)一傳送
    • 全量復(fù)制,效率低
  • 【2】增量備份
    • 在傳輸數(shù)據(jù)之前通過一些算法通過你有的數(shù)據(jù)和我有的數(shù)據(jù)進(jìn)行對(duì)比,把不一樣的數(shù)據(jù)通過網(wǎng)絡(luò)傳輸
    • 增量復(fù)制,效率高

3、rsync命令

rsync [選項(xiàng)] 原始位置 目標(biāo)位置 常用選項(xiàng)說明
-r遞歸模式,包含目錄及子目錄中的所有文件
-l對(duì)于符號(hào)鏈接文件仍然復(fù)制為符號(hào)鏈接文件
-v顯示同步過程的詳細(xì)信息
-z在傳輸文件時(shí)進(jìn)行壓縮
-a歸檔模式,遞歸并保留對(duì)象屬性,等同于-rlptgoD
-p保留文件的權(quán)限標(biāo)記
-t保留文件的時(shí)間標(biāo)記
-g保留文件的屬組標(biāo)記(僅超級(jí)用戶使用)
-o保留文件的屬主標(biāo)記(僅超級(jí)用戶使用)
-H保留硬鏈接文件
-A保留ACL屬性信息
-D保留設(shè)備文件及其他特殊文件
- -delete刪除目標(biāo)位置有而原始位置沒有的文件
- -checksum根據(jù)對(duì)象的校驗(yàn)和來決定是否跳過文件

4、配置源的兩種表示方法

格式一: 用戶名@主機(jī)地址::共享模塊名格式二: rsync://用戶名@主機(jī)地址/共享模塊名

5、實(shí)驗(yàn):本地復(fù)制(下行復(fù)制)

主機(jī)IP地址軟件/安裝包/工具
rsync192.168.184.50rsync
client192.168.184.60
#基礎(chǔ)環(huán)境配置 systemctl stop firewalld.service setenforce 0#配置rsync源服務(wù)器 rpm -q rsync yum -y install rsync#建立/etc/rsyncd.conf配置文件 vim /etc/rsyncd.conf #添加以下配置uid = nobody #root gid = nobody #root use chroot = yes #禁錮在源目錄 address = 192.168.184.50 #監(jiān)聽地址 port 873 #監(jiān)聽端口 tcp/udp 873,可通過 cat /etc/services | grep rsync 查看 log file = /var/log/rsyncd.log #日志文件位置 pid file = /var/run/rsyncd.pid #存放進(jìn)程ID的文件位置 hosts allow = 192.168.184.0/24 #允許訪問的客戶機(jī)地址 [wwwroot] path = /var/www/html #源目錄的實(shí)際路徑 comment = Document Root of www.ljm.com read only = yes #是否為只讀 dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z #同步時(shí)不再壓縮的文件類型 auth users = backuper #授權(quán)賬戶,多個(gè)賬號(hào)以空格分隔 secrets file = /etc/rsyncd_users.db #存放賬戶信息的數(shù)據(jù)文件 -------------------------------------------- uid = nobody gid = nobody use chroot = yes address = 192.168.184.50 port 873 log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid hosts allow = 192.168.184.0/24 [wwwroot] path = /var/www/html comment = Document Root of www.ljm.com read only = yes dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z auth users = backuper secrets file = /etc/user.db#如采用匿名的方式,只要將其中的 “auth users” 和 “secrets file”配置項(xiàng)去掉即可#為備份賬戶創(chuàng)建數(shù)據(jù)文件 vim /etc/user.db backuper:010230 #無需建立同名系統(tǒng)用戶 chmod 600 /etc/user.db#保證所有用戶對(duì)源目錄 /var/www/html 都有讀的權(quán)限 mkdir -p /var/www/html chmod +r /var/www/html/ ls -ld /var/www/html/#啟動(dòng) rsync 服務(wù)程序 rsync --daemon netstat -natp | grep rsync#關(guān)閉 rsync 服務(wù) kill $(cat /var/run/rsyncd.pid) rm -rf /var/run/rsyncd.pid ----------------------------------------------

#服務(wù)端: cd /var/www/html echo "hello world" >> 1.txt#客戶端: mkdir /abc rsync -avz backuper@192.168.184.50::wwwroot /abc/#查看同步: cd /abc

#客戶端:免交互格式配置 echo "010230" > /etc/server.pass chmod 600 /etc/server.passrsync -avz --delete --password-file=/etc/server.pass backuper@192.168.184.50::wwwroot /abc

二、inotify

1、簡介

  • 可以監(jiān)控文件系統(tǒng)的變動(dòng)情況,并做出通知響應(yīng)
    • 調(diào)整inotify內(nèi)核參數(shù)(優(yōu)化)
    • /etc/sysctl.conf(內(nèi)核參數(shù)配置文件)
    • inotifywait:用于持續(xù)監(jiān)控,實(shí)時(shí)輸出結(jié)果
    • inotifywatch:用于短期監(jiān)控,任務(wù)完成后再輸出結(jié)果
max_queue_events #監(jiān)控事件隊(duì)列大小 max_user_instances #最多監(jiān)控實(shí)例數(shù) max_user_watches #每個(gè)實(shí)例最多監(jiān)控文件數(shù)

2、inotifywait

格式:inotifywait [參數(shù)] 常見參數(shù)說明
-m持續(xù)進(jìn)行監(jiān)控
-r遞歸監(jiān)控所有子對(duì)象
-q簡化輸出信息
-e指定要監(jiān)控哪些事件類型

3、實(shí)驗(yàn):rsync+inotify

#服務(wù)端:修改rsync配置文件 vim /etc/rsyncd.conf uid = root gid = root read only = no #關(guān)閉只讀,上行同步需要可寫權(quán)限kill `cat /var/run/rsyncd.pid` netstat -natp | grep rsync rsync --daemon netstat -natp | grep rsync#客戶端:inotify內(nèi)核參數(shù) cat /proc/sys/fs/inotify/max_queued_events cat /proc/sys/fs/inotify/max_user_instances cat /proc/sys/fs/inotify/max_user_watches vim /etc/sysctl.conf fs.inotify.max_queued_events = 32768 #監(jiān)控時(shí)間隊(duì)列,默認(rèn)為16384 fs.inotify.max_user_instances = 1024 #最多監(jiān)控實(shí)例數(shù),默認(rèn)為128 fs.inotify.max_user_watches = 1048576 #每個(gè)實(shí)例最多監(jiān)控文件數(shù),默認(rèn)為8192 #當(dāng)要監(jiān)控的目錄、文件數(shù)據(jù)量較多或者變化頻繁時(shí),建議加大參數(shù)值sysctl -p#客戶端安裝 inotify-tools yum -y install gcc gcc-c++ tar zxvf inotify-tools-3.14.tar.gz -C /optcd /opt/inotify-tools-3.14/ ./configure make && make install#執(zhí)行“inotifywait”命令,然后在服務(wù)端向 /var/www/html 目錄下添加文件、移動(dòng)文件,跟蹤屏幕輸出結(jié)果 inotifywait -mrq -e modify,create,move,delete /abc#服務(wù)端編寫觸發(fā)同步腳本 vim /opt/inotify.sh #!/bin/bash INOTIFY_CMD="inotifywait -mrq -e create,delete,move,modify,attrib /abc/" RSYNC_CMD="rsync -apzH --delete --password-file=/etc/server.pass /abc/ backuper@192.168.184.50::wwwroot/" $INOTIFY_CMD | while read DIRECTORY EVENT FILE doif [ $(pgrep rsync | wc -l) -le 0 ] ; then$RSYNC_CMDfi donechmod +x /opt/inotify.sh chmod +x /etc/rc.d/rc.local echo "/opt/inotify.sh" >> /etc/rc.d/rc.local



超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的rsync+inotify远程同步的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。