Linux 資料同步方案
導讀 | 方案背景:A伺服器和B伺服器之間(可1對1,也可多對多,在此以簡單的1對1舉例)需要資料同步,此方案常用於遠端災備。 |
同步方案根據應用場景大約有兩種,定時同步和實時同步。定時同步具有同步時間固定、實時性差、消耗資源較小的特點;實時同步具有實時性強、同步密集、較耗資源等特點。
1、安裝軟體:
yum install rsync -y
2、免密登入(也可使用明文采用模擬互動式登入方式,但是從安全形度出發還是建議使用免密登入):
ssh-keygen -t rsa
生成後可以進入目錄cd ~/.ssh/ 把生成的金鑰~/.ssh/id_rsa.pub內容複製到遠端主機的/root/.ssh/authorized_keys中
在這裡很多同學對以上的操作為什麼就不用輸入密碼的問題感到好奇,瞭解免密登入的同學可以跳過這段介紹。這裡介紹下免密登入的原理:
rsa又稱非對稱金鑰演算法,對應的是對稱金鑰演算法。
所謂對稱金鑰演算法就是A和B通訊,為了雙方能確認對方的身份,A和B約定一個雙方都知道的金鑰k來確定身份如下:
A => (mk) B A傳送m明文和K金鑰跟B,B確認K金鑰和之前A約定的一樣,就能確定A的身份是真實的。反之B到A的通訊也是如此。
非對稱加密需要兩個金鑰:公鑰 (publickey) 和私鑰 (privatekey)。公鑰和私鑰是一對,如果用公鑰對資料加密,那麼只能用對應的私鑰解密。如果用私鑰對資料加密,只能用對應的公鑰進行解密。因為加密和解密用的是不同的金鑰,所以稱為非對稱加密。
所以以上的操作把A伺服器的公鑰共享跟了B伺服器(遠端主機),所以A伺服器登入B伺服器就不再需要傳統的互動式輸入密碼登入,B伺服器能透過A伺服器的公鑰而確認A伺服器的真實性(私鑰)。
[root@localhost ~]# cd ~/.ssh/ [root@localhost .ssh]# ls id_rsa id_rsa.pub known_hosts
3、編寫
[root@localhost ~]# vim back.sh #!/bin/sh rsync -avz -e 'ssh -p 22' root@x.x.x.x:/XXX/pub /data/
注意:rsync的資料同步分為拉和推兩種不同的動作,在編寫 之前,一定要測試 是否能正常執行。
4、crontab定時執行配置(每天3點執行指令碼)
到此,定時同步就配置好了。
Inotify簡介
Inotify 是一個 特性,從版本2.6.13開始提供,它監控檔案系統操作,比如讀取、寫入和建立。Inotify 反應靈敏,用法非常簡單,並且比 cron 任務的繁忙輪詢高效得多。
開始配置Inotify
注:在開始之前需要在伺服器A和B上都安裝好rsync。
1、在伺服器B上調整inotify核心引數,vim /etc/sysctl.conf
fs.inotify.max_queued_events = 16384 fs.inotify.max_user_instances = 1024 fs.inotify.max_user_watches = 1048576
2、使調整inotify核心引數立刻生效
sysctl -p
3、安裝Inotify-Tool工具
# 先安裝擴充套件包源,否則inotify-tools找不到 yum install epel-release yum install inotify-tools
4、開啟兩個終端,一個終端執行建立刪除等操作,另一個執行Inotify-Tool工具,測試Inotify-Tool工具時候正常
inotifywait -mrq -e modify,create,move,delete /var/www/ inotifywait:用於持續監控,實時輸出結果 inotifywatch:用於短期監控,任務完成後再出結果
5、編寫指令碼
vim /root/tongbu.sh
#!/bin/bash INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /root/cs" RSYNC_CMD="rsync -avz -e 'ssh -p 22' /root/cs/ root@x.x.x.x:/root/cs/ " $INOTIFY_CMD | while read DIRECTORY EVENT FILE do if [ $(pgrep rsync | wc -l) -le 0 ] ; then $RSYNC_CMD fi done
注:這裡要特別注意,邏輯關係不要搞混了,是B伺服器推送跟A伺服器。
6、新增開機自動後臺自動執行,編輯/etc/profile檔案,在最後一行加入下面語句
/bin/bash /root/tongbu.sh &
到此定時同步和實時同步都講解完畢。根據不同的場景應用不同的方案,需要靈活應對,特別要注意一點的是。實時同步的方案,監控目錄千萬不能設定成日誌目錄,不然伺服器cpu飆升很有可能會當機。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2781814/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 斷網收銀資料同步方案
- ORACLE(Linux版本)實時同步資料到MYSQL(Linux版本)解決方案:OGGOracleLinuxMySql
- Linux 遠端資料同步工具詳解Linux
- Linux 伺服器如何實現資料同步?Linux伺服器
- 關於內外網資料同步解決方案
- 完善昨天寫的資料庫結構同步方案資料庫
- [資料整合/資料同步] 基於資料庫增量日誌的資料同步方案 : Flink CDC/Debezium/DataX/Canal/Oracle Goldengate/Kettle/Sqoop資料庫OracleGoOOP
- 資料同步——rsync遠端同步
- 一種小資源情況下RDS資料實時同步StarRocks方案
- 資料自動同步方案實施指南:企業如何實現高效資料流轉?
- 資料同步rsync
- Rsync資料同步
- MaxWell 資料同步
- 資料庫同步資料庫
- canal資料同步
- linux下mysql主從複製,實現資料庫同步LinuxMySql資料庫
- 高效實現旺店通與金蝶雲的資料同步方案
- 使用者級資料庫結構同步方案(測試版)資料庫
- RK3326 Linux軟體方案資料下載Linux
- 微服務資訊同步方案(資料依賴一致性問題)微服務
- 資料同步和資料備份
- 《大資料: ZooKeeper 資料同步流程》大資料
- Linux 實現本、異地遠端資料實時同步功能Linux
- SQL資料同步到ElasticSearch(三)- 使用Logstash+LastModifyTime同步資料SQLElasticsearch
- 基於linux系統,fsck後資料丟失的資料恢復方案Linux資料恢復
- 在Linux中,rsync 同步資料時,如何過濾出所有.txt的檔案不同步?Linux
- clickhouse 同步mysql資料MySql
- 資料同步利器 - canal
- 資料庫同步利器 otter 雙A同步配置資料庫
- 異構資料來源同步之資料同步 → DataX 使用細節
- 資料同步:教你如何實時把資料從 MySQL 同步到 OceanBaseMySql
- 如何將本地資料同步到 shopify 或 shopify 資料同步到本地
- 高併發架構系列:資料庫主從同步的3種方案架構資料庫主從同步
- 大資料同步方案怎麼選,才能提高企業的業務效率?大資料
- 非同步容災,AntDB的業務不間斷資料恢復方案非同步資料恢復
- 伺服器資料恢復-LINUX誤刪除/格式化資料的資料恢復方案伺服器資料恢復Linux
- 異構資料來源同步之資料同步 → datax 改造,有點意思
- 基於DataX的資料同步(下)-應用DataX進行資料同步