rsync + lsyncd 檔案實時同步/備份
lsyncd 在哪臺伺服器啟動,這臺伺服器就像當於是同步伺服器,其他伺服器如果多了檔案就會刪除,少了檔案就會從這臺伺服器同步下來。
修改檔案內容也會同步
rsync 可實現檔案的同步/備份,安裝配置移步linux 下 rsync 備份/同步檔案
lsyncd 實現了觸發式或定時通知事件,可以近實時的同步檔案(封裝了rsync),github地址:https://github.com/axkibe/lsyncd
系統:centos6.4
主伺服器:192.168.1.136
同步伺服器:192.168.1.137
在 192.168.1.136 上安裝 lsyncd
安裝依賴(lsyncd 使用 lua 語言寫的)
- yum install lua lua-devel
在github 上下載 lsyncd-master.zip
- unzip lsyncd-master.zip
- cd lsyncd-master
- cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lsyncd
- make && make install
建立配置檔案
- cd /usr/local/lsyncd/
- mkdir ./etc
- mkdir ./var
- vi etc/lsyncd.conf
內容為( -- 是 lua 中的註釋符)
- -- 全域性配置
- settings {
- -- 日誌檔案存放位置
- logfile ="/usr/local/lsyncd/var/lsyncd.log",
- -- 狀態檔案存放位置
- statusFile ="/usr/local/lsyncd/var/lsyncd.status",
- -- 將lsyncd的狀態寫入上面的statusFile的間隔,預設10秒
- --statusInterval = 10
- -- 是否啟用守護模式,預設 true
- --nodaemon=true
- -- inotify監控的事件 ,預設是 CloseWrite,還可以是 Modify 或 CloseWrite or Modify
- inotifyMode = "CloseWrite",
- -- 最大同步程式
- maxProcesses = 8,
- --累計到多少所監控的事件啟用一次同步,即使後面的delay延遲時間還未到
- --maxDelays = 1
- }
- -- 遠端目錄同步
- sync {
- -- rsync , rsyncssh , direct 三種模式
- default.rsync,
- -- 同步的源目錄,使用絕對路徑。
- source = "/home/wwwroot/attachments",
- -- 定義目的地址.對應不同的模式有幾種寫法,這裡使用遠端同步的地址,rsync中的地址
- target = "rsync137@192.168.1.137::rsyncd",
- -- 預設 true ,允許同步刪除。還有 false, startup, running 值
- --delete = true,
- -- 哪些檔案不同步
- exclude = { ".*" },
- -- 累計事件,等待rsync同步延時時間,預設15秒,最大累計到1000個不可合併的事件(1000個檔案變動),
- delay = 15,
- -- 預設 true 當init = false ,只同步程式啟動以後發生改動事件的檔案,原有的目錄即使有差異也不會同步
- --init = true,
- -- rsync 的配置
- rsync = {
- -- rsync 的二進位制處理檔案
- binary = "/usr/bin/rsync",
- -- 歸檔模式
- archive = true,
- -- 壓縮傳輸
- compress = true,
- -- 增量
- verbose = true,
- -- 密碼檔案
- password_file = "/etc/rsyncd.pwd",
- -- 其他 rsync 的配置引數, 限速(--bwlimit KBPS),使用 rsync -v 檢視詳細引數
- -- _extra = {"--bwlimit=200"}
- }
- }
更多詳細配置,請看文件 https://github.com/axkibe/lsyncd/wiki/Lsyncd%202.1.x%20%E2%80%96%20The%20Configuration%20File
建立密碼檔案(內容為192.168.1.137 上使用者‘rsync137’對應的密碼 123456)
- vim /etc/rsyncd.pwd
- chmod 600 /etc/rsyncd.pwd
將 lsyncd 加入到環境目錄(做個軟鏈)
- ln -s /usr/local/lsyncd/bin/lsyncd /usr/bin/lsyncd
在192.168.1.137安裝配置 rsync ,參考這裡linux 下 rsync 備份/同步檔案
配置可簡單點
- uid = root
- gid = root
- hosts allow = 192.168.1.136
- use chroot = no
- # 最大連結數
- max connections = 10
- # pid檔案的存放
- pid file = /etc/rsyncd/rsyncd.pid
- # max connections 引數的鎖檔案的存放位置
- lock file = /etc/rsyncd/rsync.lock
- # 模組名 自定義
- [rsyncd]
- path = /home/wwwroot/attachments
- ignore errors = true
- # 這裡要允許寫入
- read only = false
- list = no
- auth users = rsync137
- # 指定認證檔案
- secrets file = /etc/rsyncd/rsyncd.secrets
- strict modes = true
認證檔案內容為(/etc/rsyncd/rsyncd.secrets)
rsync137:123456
啟動 lsyncd
- lsyncd -log Exec /usr/local/lsyncd/etc/lsyncd.conf
192.168.1.136 上建立了一個t1的資料夾,和上傳了張 t1.jpg圖片
還未同步時(配置的15秒延遲),192.168.1.137 上結構如下圖
同步後如下
相關文章
- rsync同步和備份檔案到本地
- 檔案共享服務之實時備份(inotify+rsync)
- 使用rsync同步網路備份
- rsync實時同步
- linux 利用rsync實現檔案增量同步Linux
- Linux 檔案同步工具之 rsyncLinux
- rsync+inotify實時同步
- Java實現定時備份檔案教程Java
- 雲備份和同步檔案資料
- Rsync 資料備份
- 檔案資料同步備份工具:ChronoSync for MacMac
- rsync 守護程式及實時同步
- 使用inotify-tools與rsync構建實時備份系統
- 小白都會的rsync遠端同步原理及-------(定期同步與rsync+inotify實時同步)實驗
- rsync+inotify資料的實時同步
- 在Linux中,rsync 同步資料時,如何過濾出所有.txt的檔案不同步?Linux
- 同步備份工具Rsync有什麼特性?linux系統快速入門Linux
- sql檔案備份SQL
- 超實用!!rsync分散式 + inotify監控實時同步分散式
- oracle 控制檔案及引數檔案何時自動備份Oracle
- rsync 守護程式備份報錯
- gitlab自動定時備份檔案,備份失敗傳送郵件Gitlab
- Linux實現定時備份MySQL資料庫並刪除30天前的備份檔案LinuxMySql資料庫
- Networker備份windows檔案Windows
- ManagerDB 備份檔案管理與異地備份
- Linux作業系統定時備份檔案方法Linux作業系統
- Syncovery for Mac v10.12.3啟用版 檔案備份和同步工具Mac
- Syncovery for mac(檔案備份和同步工具) v9.26a啟用版Mac
- CentOS7 下使用 rsync+sersync 配置檔案自動同步CentOS
- rsync檔案同步工具常見模式有哪些?linux運維學模式Linux運維
- 檔案伺服器rsync伺服器
- win10如何備份桌面檔案 win10怎樣備份桌面檔案Win10
- Linux 中 rsync 備份資料使用例項Linux
- Linux中rsync備份資料使用例項Linux
- Macos檔案備份同步工具:Syncovery for Mac 最新版 支援m1Mac
- 檔案備份和同步工具:Syncovery for mac v9.49i啟用版Mac
- Syncovery for mac(檔案備份和同步工具) v9.26b啟用版Mac
- 【RMAN】Oracle中如何備份控制檔案?備份控制檔案的方式有哪幾種?Oracle
- python保留7天備份檔案Python