标签:关注 监控 $0 conf 表示 删除 c中 set tar
inotifywait是 inotify-tools 包中提供的一个工具,它使用 inotify API 来监控文件/目录中的变动情况。
在archlinux上,我们可以使用下面命令来安装
sudo pacman -S --noconfirm inotify-tools
平时 inotifywait 会挂起在那里,直到文件/目录发生了要引起关注的事件后,它会退出并输出事件发生的场所、事件的名称以及引起事件的文件(当事件发生在目录上时才会输出).
inotifywait 最常用的选项有两个,一个是 -r 一个是 -e ,其中:
比如,我们运行
inotifywait -r -e modify,create,delete /tmp
表示监控 /tmp 目录及其子目录中文件修改、文件创建和文件删除三种事件。
这时程序一直在挂起状态
[lujun9972@X61 ~]$ inotifywait -r -e modify,create,delete /tmp Setting up watches. Beware: since -r was given, this may take a while! Watches established.
这时在 /tmp 目录下新建一个文件
touch /tmp/newFile
则 inotifywait 进程退出,并输出如下信息
/tmp/ CREATE newFile
rsync是一款快速增量备份工具。它的具有以下几个特点使得它很适合用作做备份的工具:
rsync常用法为:
rsync -avz --delete src/ foo:/data
其中
/ 不能去掉,否则会把src目录本身备份过去/data/ 目录接下来我们只需要用个 while 死循环把两个工具整合起来就行了,非常简单
#!/bin/bash
if [[ $# -ne 2 ]];then
cat<<EOF
Usage $(basename $0) source_dir [host:]dest_dir
EOF
exit 0
fi
source_dir=$1
dest_dir=$2
while :
do
inotifywait -r -e modify,create,delete ${source_dir} && rsync -avz ${source_dir}/ ${dest_dir} --delete
done
这里有必要说明的是,虽然用 inotifywait 能探测出文件具体做了什么改动,但实际上我们根本不需要知道具体的改变是什么。
我们只需要知道有所改变了,然后具体改变了什么由 rsync 来自己处理就行了。
原文地址:https://lujun9972.github.io/blog..
标签:关注 监控 $0 conf 表示 删除 c中 set tar
原文地址:https://www.cnblogs.com/lalalagq/p/9748098.html