成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Rsync+Inotify數據實時同步介紹

開發 開發工具
rsync(remote sync)遠程同步,rsync是linux系統下的數據鏡像備份工具。使用快速增量備份工具Remote Sync可以遠程同步,支持本地復制,或者與其他SSH、rsync主機同步。已支持跨平臺,可以在Windows與Linux間進行數據同步。rsync監聽端口:873,rsync運行模式:C/S。

一、rsync概述

rsync(remote sync)?遠程同步,rsync?是linux系統下的數據鏡像備份工具。使用快速增量備份工具Remote Sync可以遠程同步,支持本地復制,或者與其他SSH、rsync主機同步。已支持跨平臺,可以在Windows與Linux間進行數據同步。rsync監聽端口:873?,rsync運行模式:C/S。

官網:https://rsync.samba.org/官方文檔:https://www.samba.org/ftp/rsync/rsync.htmlGitHub地址:https://github.com/WayneD/rsync

二、rsync優缺點

1)優點

  • 可以鏡像保存整個目錄樹和文件系統;
  • 可以做到保持原來文件的權限、時間、軟硬鏈接等等;
  • 無須特殊權限即可安裝;
  • 可以有排除指定文件或目錄同步的功能,相當于打包命令tar的排除功能;
  • 可以使用rcp、ssh等方式來傳輸文件,rsync本身不對數據加密;
  • 支持匿名傳輸,可以實現方便安全的進行數據備份和鏡像;
  • 可以實現增量同步,既只同步發生變化的數據,因此數據傳輸效率很高;
  • 可以通過socket(進程方式)傳輸文件和數據。

2)缺點

  • 同步數據,需要掃描所有文件進行對比,才進行差量傳輸。如果文件數量達到百萬甚至千萬級,掃描文件對比文件將非常耗時,降低了rsync效率;
  • rsync不能實時地區監測、同步數據。雖然可以通過守護進程方式觸發同步,但兩次動作間有時間差,導致數據不一致,無法應對出現故障時完全恢復數據。

解決方法:rsync+inotify

三、rsync+inotify配置與安裝

IP

主機名

角色

192.168.0.113

k8s-master-168-0-113

rsync、 inotify-tools【數據源】

192.168.0.116

k8s-master2-168-0-116

rsync【備份節點】

圖片

1)rsync安裝

yum -y install rsync

2)rsync配置

cat >/etc/rsyncd.conf<<EOF
uid = root
gid = root
#禁錮在源目錄
use chroot = yes
#監聽地址,在另外的機器上,記得修改
address = 192.168.0.113
#監聽地址tcp/udp 873,可通過cat /etc/services | grep rsync查看
port 873
#日志文件位置
log file = /var/log/rsyncd.log
#存放進程 ID 的文件位置
pid file = /var/run/rsyncd.pid
#允許訪問的客戶機地址
hosts allow = 192.168.0.0/16
#共享模塊名稱
[nfsdata]
#源目錄的實際路徑
path = /opt/nfsdata
comment = Document Root of www.kgc.com
#指定客戶端是否可以上傳文件,默認對所有模塊為 true
read only = false
#同步時不再壓縮的文件類型
dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z
#授權賬戶,多個賬號以空格分隔,不加則為匿名,不依賴系統賬號
auth users = backuper
#存放賬戶信息的數據文件
secrets file = /etc/rsyncd_users.db
EOF

rsyncd.conf 常用參數詳解

rsyncd.conf 參數

參數說明

uid=root

rsync 使用的用戶。

gid=root

rsync 使用的用戶組(用戶所在的組)

use chroot=no

如果為 true,daemon 會在客戶端傳輸文件前“chroot to the path”。這是一種安全配置,因為我們大多數都在內網,所以不配也沒關系

max cnotallow=200

設置最大連接數,默認 0,意思無限制,負值為關閉這個模塊

timeout=400

默認為 0,表示 no timeout,建議 300-600(5-10 分鐘)

pid file

rsync daemon 啟動后將其進程 pid 寫入此文件。如果這個文件存在,rsync 不會覆蓋該文件,而是會終止

lock file

指定 lock 文件用來支持“max connections”參數,使得總連接數不會超過限制

log file

不設或者設置錯誤,rsync 會使用 rsyslog 輸出相關日志信息

ignore errors

忽略 I/O 錯誤

read notallow=false

指定客戶端是否可以上傳文件,默認對所有模塊為 true

list=false

是否允許客戶端可以查看可用模塊列表,默認為可以

hosts allow

指定可以聯系的客戶端主機名或和 ip 地址或地址段,默認情況沒有此參數,即都可以連接

hosts deny

指定不可以聯系的客戶端主機名或 ip 地址或地址段,默認情況沒有此參數,即都可以連接

auth users

指定以空格或逗號分隔的用戶可以使用哪些模塊,用戶不需要在本地系統中存在。默認為所有用戶無密碼訪問

secrets file

指定用戶名和密碼存放的文件,格式;用戶名;密碼,密碼不超過 8 位

[backup]

這里就是模塊名稱,需用中括號擴起來,起名稱沒有特殊要求,但最好是有意義的名稱,便于以后維護

path

這個模塊中,daemon 使用的文件系統或目錄,目錄的權限要注意和配置文件中的權限一致,否則會遇到讀寫的問題

配置/etc/rsyncd_users.db,跟auth users對應


cat >/etc/rsyncd_users.db<<EOF
backuper:123456
EOF
#官方要求,必須賦權600,要不然會有問題
chmod 600 /etc/rsyncd_users.db

rsync常用命令參數詳解

rsync --help

rsync [選項] 原始位置 目標位置

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

3)啟動rsync服務

rsync --daemon --cnotallow=/etc/rsyncd.conf
netstat -tnlp|grep :873

4)測試驗證

# 在192.168.0.116節點上測試手動同步
# 從遠端【拉取】數據
rsync -avz root@192.168.0.113:/opt/nfsdata/* /opt/nfsdata/

# 在192.168.0.113節點上測試手動同步
# 從【推送】數據
rsync -avz /opt/nfsdata/* root@192.168.0.116:/opt/nfsdata/

### 在192.168.0.116節點上測試手動同步,通過【拉取】數據,配置文件配置的模塊,這里走的是rsync協議,上面走的是ssh協議,只要做了免密就直接推送或拉取數據了。這里就會用到配置文件里配置的users用戶了,也是secrets file文件里配置的其中一個用戶。
#【方式一】
rsync -avz backuper@192.168.0.113::nfsdata /opt/nfsdata/
# 【方式二】
rsync -avz rsync://backuper@192.168.0.113/nfsdata /opt/nfsdata/

# 在192.168.0.113節點上執行
###【推送】
#【方式一】非交互式,/opt/backuper.pass文件是backuper用戶的密碼,且文件權限600
rsync -avz --password-file=/opt/backuper.pass /opt/nfsdata/* backuper@192.168.0.113::nfsdata
# 【方式二】
rsync -avz /opt/nfsdata/* rsync://backuper@192.168.0.113/nfsdata

圖片

圖片

圖片

圖片

5)編譯安裝 inotify-tools

1、inotify-tools概述

  • inotify是一種強大的、細粒度的、異步的文件系統事件監控機制,比如讀取、寫入和創建。Inotify 反應靈敏,用法非常簡單,并且比 cron 任務的繁忙輪詢高效得多。
  • linux內核從 2.6.13 起,加入了inotify支持,通過inotify可以監控文件系統中添加、刪除,修改、移動等各種細微事件,利用這個內核接口,第三方軟件就可以監控文件系統下文件的各種變化情況,而inotify-tools就是這樣的一個第三方軟件。
  • inotify可用于檢測單個文件,也可以檢測整個目錄。當檢測的對象是一個目錄的時候,目錄本身和目錄里的內容都會成為檢測的對象。

在192.168.0.113機器上安裝

2、優化inotify內核參數

在/proc/sys/fs/inotify?目錄下有max_queued_events、max_user_instances、max_user_watches這三個文件

  • max_queued_events:表示調用inotify_init時分配給inotify instance中可排隊的event的數目的最大值,超出這個值的事件被丟棄,但會觸發IN_Q_OVERFLOW事件;
  • max_user_instances:表示每一個用戶可創建的inotify instatnces的數量上限,默認128;
  • max_user_watches:表示同一用戶同時可以添加的watch數量。
echo 65535 > /proc/sys/fs/inotify/max_user_instances
echo 99999999 > /proc/sys/fs/inotify/max_queued_events
echo 99999999 > /proc/sys/fs/inotify/max_user_watches

3、inotify-tools下載

# 安裝inotify-tools之前,先安裝一下automake和libtool這兩個依賴,不然編譯安裝inotify-tools的時候會報錯。
yum install automake libtool -y

# 當然也得安全編譯工具
yum -y install gcc gcc-c++ make wget

mkdir /opt/software ; cd /opt/software
wget --no-check-certificate https://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

# 解壓
tar -zxvf inotify-tools-3.14.tar.gz

4、inotify-tools編譯安裝

cd /opt/software/inotify-tools-3.14
# 編譯安裝
./configure && make && make install

5、編寫觸發式同步腳本

vi /opt/software/inotify-tools-3.14/inotify_rsync.sh

#!/bin/bash
#監聽/opt/nfsdata/ 目錄:
#INOTIFY_CMD變量:持續監控 /opt/nfsdata/ 目錄中的創建,刪除,移動,修改,改變時間的操作
INOTIFY_CMD="inotifywait -mrq -e create,delete,move,modify,attrib /opt/nfsdata"
# 注意/tmp/user.pass文件里只有backuper對應的密碼,而且文件權限只能是600
RSYNC_CMD="rsync -avzH --delete --password-file=/opt/backuper.pass /opt/nfsdata/* backuper@192.168.0.116::nfsdata"

$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
$RSYNC_CMD
done

inotifywait命令常用參數:

圖片

執行

cd /opt/software/inotify-tools-3.14/
chmod +x inotify_rsync.sh
# 啟動腳本
nohup ./inotify_rsync.sh &

責任編輯:武曉燕 來源: 大數據與云原生技術分享
相關推薦

2011-06-22 10:37:08

rsyncinotify

2025-04-28 08:10:00

Linuxinotifyrsync

2024-08-02 09:36:03

2024-07-03 08:02:19

MySQL數據搜索

2024-11-26 08:05:44

2020-03-18 07:11:24

實時同步搜索

2021-02-26 05:21:56

MySQL數據設計

2014-08-14 10:52:49

windowslinux

2014-01-22 11:22:44

華為HANA一體機FusionCube大數據分析

2016-05-03 14:02:44

2021-07-05 10:48:42

大數據實時計算

2021-06-04 07:24:14

Flink CDC數據

2024-09-11 14:47:00

2023-05-03 08:58:46

數據庫開源

2021-05-06 05:39:30

Inotify監聽系統

2024-10-18 11:39:55

MySQL數據檢索

2011-10-28 09:05:09

2016-11-02 09:02:56

交通大數據計算

2025-01-10 10:44:52

2024-06-06 08:58:08

大數據SQLAPI
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 777zyz色资源站在线观看 | 欧美一级全黄 | 国产日韩一区 | 91天堂| julia中文字幕久久一区二区 | 蜜桃视频一区二区三区 | 亚洲三区在线观看 | 国产亚洲欧美日韩精品一区二区三区 | 一本一道久久a久久精品蜜桃 | 99久久久久久99国产精品免 | 亚洲一区二区在线视频 | 精品中文字幕在线观看 | 亚洲福利一区二区 | 日本高清中文字幕 | 中文字幕黄色大片 | 国产目拍亚洲精品99久久精品 | 国产精品福利网站 | 日韩精品一区二区三区视频播放 | 国产最好的av国产大片 | 欧美日韩亚洲成人 | 一区二区三区四区在线 | 一区二区三区视频在线观看 | 999国产精品视频 | 99精品欧美一区二区三区综合在线 | 欧美精品成人 | 国产日韩免费观看 | 国产一区二区视频免费在线观看 | 久久亚洲一区二区三区四区 | 欧美日韩视频在线 | 精品成人佐山爱一区二区 | 成人国产精品久久 | 久久精品福利视频 | 午夜在线免费观看视频 | 不卡视频一区 | 人人玩人人干 | 久久久国产精品一区 | 欧美一级二级视频 | 伊人亚洲| 韩日中文字幕 | 久久国产精品偷 | 国产精品久久久久久婷婷天堂 |