假設有下列需求:
假設兩台伺服器:
192.168.0.1 來源伺服器 有目錄/opt/test/
192.168.0.2 目標伺服器 有目錄/opt/bak/test/
實現的目的就是保持這兩個伺服器某個檔案目錄保持即時同步
實作方式: 透過rsync+inotify -tools結合來實作
準備工作:
首先要給兩台機器加入信任關係,具體方法已經在前面的文章介紹過了
詳情查看: linux新增信任關係免密碼登入
需要安裝軟體:
1. rsync 同步軟體
# 在來源伺服器和目標伺服器都需要安裝
## 來源伺服器: 是rsync客戶端,不需要設定 目標伺服器: 是rsync伺服器端,需要設定/etc/rsyncd.conf裡的內容2. inotify-tools 工具 此工具為檔案即時監控工具,需要linux作業系統核心支持,核心支援需要至少版本為2.6.13#檢查作業系統是否支持,執行如下: uname -r 檢視版本 回傳:2.6.32-358.6.1.el6.x86_64則表示版本2.6.32 大於2.6.13,則支援。 執行:
ll /proc/sys/fs/inotify total 0 -rw-r--r-- 1 root root 0 Oct 18 12:18 max_queued_events -rw-r--r-- 1 root root 0 Oct 18 12:18 max_user_instances -rw-r--r-- 1 root root 0 Oct 18 12:18 max_user_watches有三個輸出,則表示預設支援inotify,可以安裝inotify-tools工具.# 若不支持,需要採用新版本的linux作業系統 版本達到要求,就可以安裝了。 安裝inotify-tools後會在相關安裝目錄下產生以下兩個檔案:
ll /usr/local/bin/ total 88 -rwxr-xr-x 1 root root 44327 Oct 10 15:32 inotifywait -rwxr-xr-x 1 root root 41417 Oct 10 15:32 inotifywatch則表示安裝成功。
注意: 在 來源伺服器上需要安裝,目標伺服器上不需要安裝inotify。
3. 相關腳本:## 在來源伺服器上新腳本:
inotify_bak.sh
#!/bin/bash src=/opt/test/ /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,delete,create,attrib $src | while read file do /usr/bin/rsync -arzuq $src 192.168.0.1::www/ echo " ${file} was rsynced" >>/opt/soft/log/rsync.log 2>&1 done
給予執行權限:
chmod +x inotify_bak.sh
然後執行:nohup inotify_bak.sh & 放入後台執行
4. 關於啟動
目標伺服器:先啟動rsync後台服務: /usr/bin/rsync --daemon
來源伺服器: 執行inotify_bak.sh &
#5. 測試:
# 在來源伺服器目錄中新建目錄和文件,inotify_bak.sh腳本會偵測到,然後同步到目標伺服器的相關目錄下
可以檢視日誌檔案: /opt/soft/log/rsync.log 指令如下:觀察即時同步的情況。
tail -f /opt/soft/log/rsync.log
錯誤解決:
/usr/local/bin/inotifywait: error while loading shared libraries: libinotifytools.so.0: cannot open shared object file: No such file or directory
這是因為找不到函式庫檔案的原因,做一個軟連線就好了
ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0
以上是兩台伺服器檔案即時同步如何在linux下實現的方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Linux操作系統的5個核心組件是:1.內核,2.系統庫,3.系統工具,4.系統服務,5.文件系統。這些組件協同工作,確保系統的穩定和高效運行,共同構成了一個強大而靈活的操作系統。

Linux的五個核心元素是:1.內核,2.命令行界面,3.文件系統,4.包管理,5.社區與開源。這些元素共同定義了Linux的本質和功能。

Linux用戶管理和安全性可以通過以下步驟實現:1.創建用戶和組,使用命令如sudouseradd-m-gdevelopers-s/bin/bashjohn。 2.批量創建用戶和設置密碼策略,使用for循環和chpasswd命令。 3.檢查和修復常見錯誤,如家目錄和shell設置。 4.實施最佳實踐,如強密碼策略、定期審計和最小權限原則。 5.優化性能,使用sudo和調整PAM模塊配置。通過這些方法,可以有效管理用戶和提升系統安全性。

Linux文件系統和進程管理的核心操作包括文件系統的管理和進程的控制。 1)文件系統操作包括創建、刪除、複製和移動文件或目錄,使用命令如mkdir、rmdir、cp和mv。 2)進程管理涉及啟動、監控和終止進程,使用命令如./my_script.sh&、top和kill。

Shell腳本是Linux系統中用於自動化執行命令的強大工具。 1)Shell腳本通過解釋器逐行執行命令,處理變量替換和條件判斷。 2)基本用法包括備份操作,如使用tar命令備份目錄。 3)高級用法涉及使用函數和case語句管理服務。 4)調試技巧包括使用set-x開啟調試模式和set-e在命令失敗時退出。 5)性能優化建議避免子Shell,使用數組和優化循環。

Linux是一個基於Unix的多用戶、多任務操作系統,強調簡單性、模塊化和開放性。其核心功能包括:文件系統:以樹狀結構組織,支持多種文件系統如ext4、XFS、Btrfs,使用df-T查看文件系統類型。進程管理:通過ps命令查看進程,使用PID管理進程,涉及優先級設置和信號處理。網絡配置:靈活設置IP地址和管理網絡服務,使用sudoipaddradd配置IP。這些功能在實際操作中通過基本命令和高級腳本自動化得以應用,提升效率並減少錯誤。

進入Linux維護模式的方法包括:1.編輯GRUB配置文件,添加"single"或"1"參數並更新GRUB配置;2.在GRUB菜單中編輯啟動參數,添加"single"或"1"。退出維護模式只需重啟系統。通過這些步驟,你可以在需要時快速進入維護模式,並安全地退出,確保系統的穩定性和安全性。

Linux的核心組件包括內核、shell、文件系統、進程管理和內存管理。 1)內核管理系統資源,2)shell提供用戶交互界面,3)文件系統支持多種格式,4)進程管理通過fork等系統調用實現,5)內存管理使用虛擬內存技術。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用