有时候我们常需要当文件变化的时候便触发某些脚本操作,比如说有文件更新了就同步文件到远程机器。在实现这个操作上,主要用到两个工具,一个是rsync,一个是inotifywait。inotifywait的作用是监控文件夹变化,rsync是用来同步,可同步到本机的其他目录或者远程服务器上。
我们先看下二者的安装方式。
安装rsync
安装inotifywait
创建并运行脚本
新建脚本inotifywait.sh 并输入以下内容:
然后,执行下面命令,会在后台执行监控。
接下来我们重点看下inotify的使用。
inotify 是一个 Linux 内核提供的 API,它可以监视文件系统事件,比如文件或目录的创建、删除、修改等。
inotify-tools 是一套用户空间的工具,包括 inotifywait 和 inotifywatch,用于使用 inotify API。
这些工具可以对文件系统事件进行监控,并生成相应的警告或日志。
inotifywait是一个非常实用的命令,它属于inotify-tools包,可以用来监控Linux文件系统事件。
下面是一些inotifywait应用的例子:
监控目录或文件的创建、删除、移动等操作:
这个命令将监视/path/to/directory目录中所有文件和目录的创建、删除和移动操作。当有文件或目录被创建、删除或移动时,这个命令将显示相应的信息。
监控文件的修改操作:
这个命令将监视/path/to/file文件的修改操作。当有文件被修改时,这个命令将显示相应的信息。
监控目录或文件的属性变化:
这个命令将监视/path/to/directory目录中所有文件和目录的属性变化。当有文件或目录的属性发生变化时,这个命令将显示相应的信息。
监控多个目录或文件的事件:
这个命令将监视多个目录和文件的创建、删除和移动操作。当有目录或文件发生相应的事件时,这个命令将显示相应的信息。
监控事件并执行命令:
上面的命令将监视/path/to/directory目录中所有文件和目录的创建、删除和移动操作,并在事件发生时执行指定的命令。可以将命令替换为你想要执行的任何命令。这些例子只是inotifywait的一些基本用法,大家可以根据自己的需求进一步扩展和定制。