用inotify监控文件变化
用inotify监控文件变化 · Jun 29, 2018 clicks
Linux下用inotify可以监控文件或文件夹的状态变化.
为了把编译的压力转移到另一台电脑上, 一开始手动运行rsync, 过了两天不耐烦了, 寻思用自动工具去完成.
电脑A: 运行Ubuntu系统;电脑B: 运行Windows 10, 但是安装了WSL子系统(Ubuntu 16.04)
第一步: 现在Windows上安装ssh, 并开启sshd服务
sudo apt install ssh sudo service ssh start
第二步: 再Window上的WSL子系统中保存ssk key. 从A电脑中把公钥传输到电脑B中.过程略去....
第三步: 运行rsync,测试能否成功
第四步:安装inotify
sudo apt install inotify-tools
然后
inotifywait --help
inotifywait 命令参数说明:
-m 选项表示 monitor ,即开启监视
-r 选项表示递归监视,但是会比较慢一些,若监视/etc 目录,其中的子目录下修改文件也是能被监控到。
-e 选项指定要监控的“事件”(events)包括了:access、modify、 attrib、 close_write、 close_nowrite、close、open、 moved_to、 moved_from、move、 move_self、 create、delete、delete_self、unmount。
最后写个shell,就可以干活了
#!/bin/sh srcdir="/home/gebsni/work/demo/manager/src" distdir="ComputerB:/mnt/d/work/demo_manager/src/" inotifywait -mrq --timefmt '%d/%m/%y-%H:%M' --format '%T%w%f' -e modify,delete,create,attrib,move ${srcdir} | while read file do rsync -rlptDvzHS --delete --exclude-from=${srcdir}/../.gitignore ${srcdir}/* ${distdir} done