1. 程式人生 > >在CentOS7上配置rsync源伺服器+inotify實時同步

在CentOS7上配置rsync源伺服器+inotify實時同步

概述

rsync是一個開源的快速備份工具,可以再不同主機之間映象同步整個目錄樹,支援增量備份,保持連結和許可權,且採用優化的同步演算法,再傳輸前執行壓縮,因此非常適用於異地備份、映象伺服器等應用。

原理

再遠端同步任務中,負責發起rsync同步操作的客戶機稱為發起端,而負責響應來自客戶機的rsync同步操作的伺服器稱為同步源。再同步過程中,同步源負責提供文件的原始位置,而發起端對該位置具有讀取許可權,如圖所示:

配置rsync源伺服器

1.檢查rsync是否安裝

[[email protected] ~]# rpm -q rsync
rsync-3.0.9-18.el7.x86_64

2.修改rsync預設配置檔案,位於/etc/rsyncd.conf。

插入以下內容
uid = nobody
 gid = nobody
 use chroot = yes        //禁錮在源目錄//
 address = 192.168.126.138    //監聽地址//
 port 873         //監聽埠//
 log file = /var/log/rsyncd.log       //日誌檔案位置//
 pid file = /var/run/rsyncd.pid      //存放程序ID的檔案位置//
 hosts allow = 192.168.126.0/24     //允許訪問的客戶機地址//
# max connections = 4
# pid file = /var/run/rsyncd.pid
# exclude = lost+found/
# transfer logging = yes
# timeout = 900
# ignore nonreadable = yes
# dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
 [wwwroot]                //共享模組名稱//
 path = /var/www/html    //源目錄的實際路徑//
 read only = no         //是否為只讀//
 dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2  //同步時不再壓縮的檔案型別//
 auth users = backuper         //授權賬戶//
 secrets file = /etc/rsyncd_users.db     //存放賬戶資訊的資料檔案//

3.為備份賬戶建立資料檔案

根據上一步的設定,建立賬號資料檔案,新增一行使用者記錄,以冒號分隔,使用者名稱稱為backup,密碼為abc123。由於賬號資訊採取明文存放,因此應調整檔案許可權,避免賬號資訊洩露。

[[email protected] ~]#vim /etc/rsyncd_users.db
             backuper:abc123
[[email protected] ~]#chmod 600 /etc/rsyncd_users.db

4.開啟rsync服務,執行引數為 --daemon。

[[email protected] opt]# systemctl stop firewalld.service
[
[email protected]
opt]# setenforce 0 [[email protected] opt]# rsync --daemon [[email protected] opt]# netstat -ntap | grep rsync tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 2934/rsync

使用rsync備份工具

配置源的方法:

在執行運程同步任務時,rsync命令需要指定同步源伺服器中的資源位置。rsync同步源的資源表示方式為“使用者名稱@主機地址::共享模組名”或者“rsync://使用者名稱@主機地址/共享模組名”,前者為兩個冒號分隔形式,後者為URL地址形式。

rsync -avz [email protected]::wwwroot /opt/  
rsync -avz rsync://[email protected]/wwwroot /opt/

1.執行以下操作將源伺服器中的wwwroot共享模組,下載到客戶機的本地/var/www/html目錄下。

源伺服器:
[[email protected] ~]# cd /var/www/html/
[[email protected] html]# echo "123" > 111.txt
[[email protected] html]# echo "456" > 222.txt
[[email protected] html]# ls
111.txt  222.txt

客戶端:
[[email protected] opt]# rsync -avz [email protected]::wwwroot/ ./   //下載到當前目錄//
Password: 
receiving incremental file list
./
111.txt
222.txt

sent 102 bytes  received 221 bytes  23.93 bytes/sec
total size is 8  speedup is 0.02
[[email protected] html]# ls
111.txt  222.txt

2.在客戶端上傳檔案到源伺服器

[[email protected] opt]#mkdir b1 b2 b3 b4     
[[email protected] opt]# ls
b1  b2  b3  b4  b5  rh
[[email protected] opt]# rsync -avz [email protected]::wwwroot/ ./   #上傳
Password: 
receiving incremental file list
./
111.txt
222.txt

sent 102 bytes  received 221 bytes  23.93 bytes/sec
total size is 8  speedup is 0.02            #上傳成功

源伺服器上檢視:
[[email protected] ~]# cd /var/www/html/
[[email protected] html]# ls
b1  b2  b3  b4  b5  rh

注意:
上傳前需要把源伺服器rsync的配置檔案rsyncd.conf中的uid、gid修改為root

配置rsync+inotify實施同步

將rsync工具與inotify機制相結合,可以實現觸發式備份(實時同步)——只要原始位置的文件發生變化,就立即啟動增量備份操作,如圖所示,否則處於靜默等待狀態。這樣,就避免了按固定週期備份時存在的延遲性、週期過密等問題。

正因為inotify通知機制由Linux核心提供,因此要做本機監控,在觸發式備份中應用時更適合上行同步。下面一次介紹其配置過程。

1.調整inotify核心引數

當要監控的目錄、檔案數量較多或者變化較頻繁時,建議加大這三個引數的值。可以直接修改/etc/sysctl.conf的配置檔案,將管理佇列、例項數、監控數進行設定。

[[email protected] html]# vim /etc/sysctl.conf
# For more information, see sysctl.conf(5) and sysctl.d(5).   //新增//
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
[[email protected] html]# sysctl -p    //啟動//
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576

2.安裝inotifi-tools

使用inotify機制還需要安裝inotifi-tools,以便提供inotifywait和inotifywatch輔助工具程式,用來監控和彙總改動情況。

[[email protected] rs]# tar zxvf inotify-tools-3.14.tar.gz -C /opt/  #解包
[[email protected] opt]# cd inotify-tools-3.14/
[[email protected] inotify-tools-3.14]# yum install gcc gcc-c++ make -y  #安裝編譯軟體
[[email protected] inotify-tools-3.14]# ./configure     
[[email protected] inotify-tools-3.14]#make && make install

3.編寫觸發式同步指令碼

[email protected] opt]# vim inotify.sh 

#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /var/www/html/ [email protected]::wwwroot/"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
    if [ $(pgrep rsync | wc -l) -le 0 ] ; then
        $RSYNC_CMD
    fi
done

上述指令碼用來檢測本機/var/www/html目錄的變動情況,一旦有更新觸發rsync同步操作,上傳備份至伺服器192.168.126.138的/var/www/html目錄下。

4.驗證

1).在源伺服器執行inotifywait -mrq -e modify,create,move,delete /var/www/html/

[[email protected] html]# inotifywait -mrq -e modify,create,move,delete /var/www/html/ //靜默等待狀態//

2)開啟源伺服器的另一個視窗在/var/www/html目錄下建立新的檔案

[[email protected] ~]# cd /var/www/html/
[[email protected] html]# ls
[[email protected] html]# echo "this is 111" > 111.txt    //寫入檔案//
[[email protected] html]# echo "this is 222" > 222.txt
[[email protected] html]# rm -rf 111.txt   //刪除檔案//

3)檢視源伺服器的更新觸發狀態

[[email protected] html]# inotifywait -mrq -e modify,create,move,delete /var/www/html/
/var/www/html/ CREATE 111.txt         
/var/www/html/ MODIFY 111.txt
/var/www/html/ CREATE 222.txt
/var/www/html/ MODIFY 222.txt
/var/www/html/ DELETE 111.txt      
                              //監控端已有反饋//

4)檢視伺服器中的/var/www/html目錄下的變化情況

[[email protected] html]# ls
111.txt  222.txt
[[email protected] html]# ls
222.txt

實驗成功

相關推薦

CentOS7配置rsync伺服器+inotify實時同步

概述 rsync是一個開源的快速備份工具,可以再不同主機之間映象同步整個目錄樹,支援增量備份,保持連結和許可權,且採用優化的同步演算法,再傳輸前執行壓縮,因此非常適用於異地備份、映象伺服器等應用。 原理 再遠端同步任務中,負責發起rsync同步操作的客戶機稱為發起端,而

CentOS7配置rsync服務器+inotify實時同步

-c sha .tar.gz clu nag 一次 一個 for mar 概述 rsync是一個開源的快速備份工具,可以再不同主機之間鏡像同步整個目錄樹,支持增量備份,保持鏈接和權限,且采用優化的同步算法,再傳輸前執行壓縮,因此非常適用於異地備份、鏡像服務器等應用。 原理

rsync同步操作 、 發布rsync共享 、 inotify實時同步 、 Split分離解析

rsync 虛擬機A 1. 將防火墻狀態設置為trusted 2.SELinux當前修改為permissive 3.SELinux永久狀態修改為permissive 4.清空Yum緩存,檢查Yum是否可用 虛擬機B 1. 將防火墻狀態設置為trusted 2.SELinu

Centos7配置 rsync 以及 rsync+inotify 實時同步

否則 tst rsync服務 notify 檢測 日誌 文件備份 過程 ddr Centos 7 下 配置 Rsync 以及 rsync+inotify 實時同步 rsync介紹 rsync是一個開源的快速備份工具,可以在不同主機之間鏡像同步整個目錄樹,支持增量備份,保持鏈

centos7配置rsync+inotify實現自動監控數據同步

ping通 ping down 自動監控 type 用戶密碼 mark RoCE 關閉 rsync服務可以實現數據的同步,但不是自動同步,所以在一些網站服務等, 需要用到inotify進行自動監控。 實驗環境:centos7 兩臺 能互相ping通

rsync + inotify 實時同步【附送碼包】

服務器 路徑和 sync 執行權 chm 發生 都是 blog src 項目:配置Rsync+inotify 實時備份 簡介:·Rsync:是一個開源的快速備份工具,它可以在不同的主機之間同步整個目錄樹,並且可以保持連接和權限在傳輸前執行壓縮,因此很適用於異地備份、鏡像服務

配置rsync+inotify 實時同步

process 認同 本機 賬號 creat 配置文件 下載到本地 inux wall rsync簡介:rsync是一個開源的快速備份工具,可以在不同主機之間鏡像同步整個目錄樹,支持增量備份,保持連接和權限,且采用優化的同步算法,在傳輸前執行壓縮,因此非常適用於異地備份,鏡

linux下rsync+inotify實現兩臺伺服器檔案實時同步

假設兩個伺服器: 192.168.0.1 源伺服器  有目錄 /opt/test/ 192.168.0.2 目標伺服器  有目錄 /opt/bak/test/ 實現的目的就是保持這兩個伺服器某個檔案目錄保持實時同步 實現方式: 通過rsync+inotify-too

centos7配置Samba伺服器

centos7安裝samba伺服器,這是一種比較粗暴的配置方式,沒有任何安全防禦措施,任何人都可以訪問伺服器上的檔案,並且沒有許可權設定,這樣做的目的就是方便Windows和Linux之間傳輸檔案使用,簡單記錄一下搭建的過程 一.安裝 [[email prote

VM中CentOS7本地配置yum方法

vm中centos7本地配置yum源方法因為虛擬機中安裝CentOS7未聯網,所以通過本地配置yun源來實現安裝操作。一、通過光盤當做本地yum倉庫1.掛載當前光盤至某目錄 ]#mount /dev/cdrom /mnt或者# mount -r -t iso9660 /dev/cdrom /media

centos7 配置Javaweb---MySQL的安裝與配置、亂碼解決

dog ces set div success 編碼問題 都是 下載 use 上一篇謝了關於jdk和tomcat的安裝。今天先更新一下有用的。 1. 不用關閉防火墻,把80端口添加進防火墻的開放端口。 firewall-cmd --zone=public --add-po

rsync+inotify 實時同步腳本學習筆記

rsync+inotify 實時同步腳本學習筆記#!/bin/sh#parahost01=192.168.100.61src=/backupdst=oldboyuser=rsync_backuprsync_passfile=/etc/rsync.passwordinotify_home=/usr/local/

CentOS7配置MariaDB-Galera-Cluster過程全記錄

base table inf replicat connect 全局 lec sig 5.5 在CentOS7上配置MariaDB-Galera-Cluster過程全記錄 MySQL or MariaDB Replication之Galera Cluster Galera

(轉)rsync+inotify實時同步

inside disable 失敗 文件名 -c users localhost tin 常見 原文:http://lxw66.blog.51cto.com/5547576/1331048 聲明:rsync inotify 需要逆向思考,當只做rsync不實時同步時,我們一

rsync+inotify實時同步

rsync+inotify實時同步Rsync+Inotify實時同步Rsync:rsync是類unix系統下的數據鏡像備份工具。使用快速增量備份工具Remote Sync可以遠程同步,支持本地復制,或者與其他SSH、rsync主機同步。Inotify:Inotify 是一個 Linux特性,它監控文件系統操作

certbot在Centos7配置合法簽名證書,實現nginx的https訪問

certbot合法簽名證書 nginx配置https 咖菲貓-李常明筆記 公司因之前使用的openssh創建的自簽名證書,有一個弊端,就是在某些客戶端上不能使用此證書,無法使用https連接,所以,研究了一下certbot 做簽名證書! certbot的官網地址: https://certbot.

rsync遠程同步+inotify實時同步

ima 51cto vpd 備份 mage ssp fde ces 實時 rsync遠程同步備份服務器 客戶端發生改變,數據同步到服務器 rsync遠程同步+inotify實時同步

第五篇:Centos7配置docker容器ssh登錄

方式 service col 客戶端連接 httpd 添加 遠程 初步 images 1.查看httpd容器是否運行2.啟動httpd容器3.默認情況下,我們只能在宿主機上通過如下方式連接容器說明:這是在宿主機連接容器直接有效的方法 我們能夠通過容器的IP地址連接容器呢?需

centos7安裝配置rsync

提示信息 add allow mark onf 安裝配置 uid secret 信息 一、服務端(192.168.8.81): 安裝軟件: yum -y install rsync 創建需同步的目錄: mkdir -p /home/lee/rsync 編輯配置文

CentOS7.X配置YUM及EPEL

額外 rpm包 entos 再次 img 服務器 grep 自動下載 新的 1、YUM源介紹 Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器。基於RPM包管理,能夠從