CentOS6.6 rsync+inotify實現數據時時備份
rsync+inotify實現數據時時備份
註意:rsync的daemon模式已提前配置好了,只需要配置inotify即可。
基本環境
系統版本 | 主機名 | IP地址 | 角色 | 備份/監控目錄 |
CentOS 6.6 | backup | 10.0.0.10 | rsync服務端 | /backup |
CentOS 6.6 | nfs-server | 10.0.0.7 | rsync客戶端 | /data |
inotify安裝配置
查看系統是否支持inotify,顯示以下三個文件表示支持
[[email protected] tools]# ls -l/proc/sys/fs/inotify/
total 0
-rw-r--r-- 1 root root 0 May 16 19:44max_queued_events
-rw-r--r-- 1 root root 0 May 16 19:44max_user_instances
-rw-r--r-- 1 root root 0 May 16 19:44max_user_watches
下載inotify工具包並解壓安裝
[[email protected] tools]# wget--no-check-certificate https://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
[[email protected] tools]# tar-zxvf inotify-tools-3.14.tar.gz
[[email protected] tools]# cdinotify-tools-3.14
[[email protected]]# ./configure --prefix=/usr/local/inotify-tools-3.14
[[email protected]]# make && make install
[[email protected] inotify-tools-3.14]#ln -s /usr/local/inotify-tools-3.14/ /usr/local/inotify-tools
工具集介紹
[[email protected]
inotifywait inotifywatch
一共安裝了2個工具(命令),即inotifywait和inotifywatch
inotifywait:在被監控的文件或目錄上等待特定文件系統事件(open、close、delete等)發生,執行後處於阻塞狀態,適合在shell腳本中使用。
inotifywatch:收集被監視的文件系統使用度統計數據,指文件系統事件發生的次數統計。
監控本地/data目錄
[[email protected] /]#/usr/local/inotify-tools/bin/inotifywait -mrq --timefmt ‘%d/%m/%y %H:%M‘--format ‘%T %w%f‘ -e create,close_write,delete /data
create:監控創建文件
close_write:監控修改文件
delete:監控刪除文件
用inotify監控nfs-server的/data目錄,然後調用rsync時時備份到backup主機的/backup目錄,並寫成腳本完成
#!/bin/bash
##############################backupscripts#######################
#author wangning
#qq 1198143315
#date 2017-6-9
#E-mail [email protected]
inotify=/usr/local/inotify-tools/bin/inotifywait
$inotify -mrq --format ‘%w%f‘ -e create,close_write,delete/data \
|while read file
do
cd / &&
rsync -az ./data/ [email protected]::backup/ \
--password-file=/etc/rsync.password
done
關鍵參數說明
在/proc/sys/fs/inotify/目錄下有三個文件,對inotify機制有一定的限制
max_user_watches:設置inotifywait或inotifywatch命令可以監視的文件數量(單進程)
max_user_instances:設置每個用戶可以運行的inotifywait或inotifywatch命令的進程數
max_queued_events:設置inotify實例事件(event)隊列可容納的事件數量
工作中如果參數不夠用,可以調大一些
[[email protected] scripts]# echo"50000000" >/proc/sys/fs/inotify/max_user_watches
[[email protected] scripts]# echo"50000000" >/proc/sys/fs/inotify/max_queued_events
本文出自 “飛奔的駱駝” 博客,請務必保留此出處http://wn2100.blog.51cto.com/9915310/1941573
CentOS6.6 rsync+inotify實現數據時時備份