INOTIFY監控服務與RSYNC服務實現CLIENT與SERVER之間的實時同步

準備兩臺主機服務器 shell

服務端:host1  192.168.1.109      
    客戶端:host2  192.168.1.107

一.服務端配置

1.修改host1的rsync配置文件:

~]# vim /etc/rsyncd.conf     
    uid=root    
    gid=root    
    use chroot=no  
    max connections=0   #不限制最大鏈接數   
    exclude = lost+found
    pid file = /var/run/rsyncd.pid
    log file = /var/log/rsyncd.log
    lock file =/var/run/rsyncd.lock
    reverse lookup = no
    hosts allow = 192.168.1.107/24   #容許鏈接的主機     
    ignore errors
    [backup]
    path = /backup/     #備份的到路徑
    comment = backup
    read only= no
    auth users = kobe   #客戶端同步數據到服務端時的受權帳戶    
    secrets file=/etc/rsync.pass   #將受權帳戶與密碼存放到此文件中       
    ...  
    ...   
    ...

2.建立配置文件中的備份文件夾、受權帳戶、帳戶密碼文件

建立用於備份的文件目錄    
 ~]# mkdir /backup/     
建立受權用戶    
 ~]# useradd  -r  -s  /sbin/nologin   kobe    
將受權的用戶名及密碼存入文件,爲了安全將此文件設置600權限    
 ~]# echo   'kobe:123456'    > /etc/rsyncd.pass   
 ~]# chmod  600 /etc/rsyncd.pass

3.服務端配置完成從新啓動rsyncd服務加載配置文件

~]# systemctl restart rsyncd.service

二.客戶端配置

1.yum安裝監控包客戶端工具inotify-tools、導入受權用戶密碼

~]# yum install inotify-tools -y   
導入受權用戶密碼    
        ~]# echo 123456 > /etc/rsyncd.pass    
        ~]# chmod 600 /etc/rsynd.pass

2.編寫腳本實現客戶端與服務端實時同步

~]# vim /data/shell.sh/rsync_inotify.sh 
        #!/bin/bash 
        SRC='/data/shell.sh/'
        DEST='kobe@192.168.1.109::backup'
        inotifywait  -mrq --timefmt '%Y-%m-%d %H:%M' --format '%T %w%f' -e create,delete,moved_to,close_write,attrib ${SRC} |while read DATE TIME DIR FILE;do
        FILEPATH=${DIR}${FILE}
        rsync -az --delete  --password-file=/etc/rsync.pass $SRC $DEST && echo "At ${TIME} on ${DATE}, file $FILEPATH was backuped up via rsync" >> /var/log/changelist.log
        done     

        :wq  #保存退出 

        運行腳本文件實時同步開始 .....   
        ~]# rsync_inotify.sh

三.客戶端更改數據測試實時同步

1.服務端host1

監控backup文件夾,每秒鐘刷新一次:
              ~]#  watch -n 1 ls -l /backup

INOTIFY監控服務與RSYNC服務實現CLIENT與SERVER之間的實時同步

2.客戶端host2

~]# ls -l /data/shell.sh

INOTIFY監控服務與RSYNC服務實現CLIENT與SERVER之間的實時同步

能夠看出實現數據實時同步,在客戶端修改數據時會自動將修改數據同步到服務端 vim

3.客戶端查看日誌文件

顯示客戶端已備份到服務端的文件及備份的時間
        ~]#  cat  /var/log/changelist.log

INOTIFY監控服務與RSYNC服務實現CLIENT與SERVER之間的實時同步

相關文章
相關標籤/搜索