己所不欲,勿施于人 [登录·注册]

吕滔博客

首页 开发 运维 工具 摄影

Mac下使用inotify-tools相关工具监控文件动态并同步拷贝(fswatch,fsevents)

环境配置,xcode&mac memory 发布于November 14, 2017 标签: Linux, mac

同事们都在ubuntu下使用vim开发,我个人对vim用的不熟悉,而且习惯了phpstorm的一些操作方式,所以想着将Linux下的开发环境迁移到mac下。
至于git和svn倒是方便,唯独公司的产品有个特殊的,只能折腾了。
大概需求:A目录个别的文件同步到站点的B目录。然后开发在A目录,提交也是在A目录完成。但是站点配置撒的都是在B目录,预览也是通过B目录。 所以我要将A目录的修改自动同步到B目录对应的文件夹即可。

在Linux下使用的是inotify来监控文件动态,并使用rsync同步。
mac下已经内置了rsync,所以只需要安装inotify即可。但...mac下没有inotify......

同事给我介绍了一个工具fswatch,然后在网上找了一下,也有一些人使用的是这个工具进行文件监控同步的。
安装 fswatch

brew install fswatch

即可完成。

但是fswatch的动作event,好奇怪。。。

创建目录 Created IsDir
目录改名 Created Renamed IsDir
目录移动 Renamed IsDir
删除目录 Renamed IsDir

文件创建 Created IsFile
文件改名 Renamed IsFile
文件移动 Renamed IsFile
文件编辑 AttributeModified IsFile   Removed Renamed OwnerModified IsFile
文件删除 Renamed IsFile

这样我有些特殊的动作可能就比较麻烦了...因为我在rsync的时候,不能使用--delete,因为我站点目录B里面的文件肯定比A的多,而且A里面没有的文件是不能删的。。。所以就只能监控A目录,如果文件删了,则删除目录B里面对应的文件。

那又找了我好几个小时,找到了一个fsevents-tools的工具,咧,咋一看和inotify一模一样,好像是个移植版。只不过把命令
inotify开头的i给去掉了,,,好贱....

so..

删除本地的fswatch,果断安装

brew install fsevents-tools

试了一下,以前linux下的脚本稍做改动即可
比如:
判断是否有inotifywait命令,就改成判断是否有notifywait命令即可
而那个通过notifywait监控文件变动的,而直接可以使用notifyloop监控即可

notifyloop 源目录 rsync 源目录 目标目录

这样的形式就搞定了,至于说文件删除,变动撒的。。。notifyloop已经帮你做了。。。

看进程发现,notifyloop调用了一个notifywait进程进行监控,哈哈。

收工,下班,回家睡觉...

相关推荐

添加新评论

网站状态

  • 栏目分类:49个
  • 发布文章:1553篇
  • 用户评论:834条
  • 开博至今:4337天

正则速查

[abc] 匹配中括号中的单个字符,如a或b或c
[^abc] 匹配除了a、b、c等字符的其他单个字符
[a-z] 匹配一个字符范围,如a到z
[a-zA-Z] 匹配一个字符范围,如a-z 或 A-Z
^ 匹配行的开始
$ 匹配行的结束
\A 匹配一个字符串的开始
\z 匹配一个字符串的结束
. 匹配任意单个字符
\s 匹配空白字符,如空格,TAB
\S 匹配非空白字符
\d 匹配一个数字
\D 匹配非数字
\w 匹配一个字母
\W 匹配非字母
\b 匹配字符边界
(...) 引用所有括号中的内容
(a|b) a或者b
a? 零个或1个a
a* 零个或多个a
a+ 1个或多个a
a{3} 3次重复的a
a{3,} 3次或3次以上重复的a
a{3,6} 3到6次重复的a

修正符

/g 查找所有可能的匹配
/i 不区分大小写
/m 多行匹配
/s 单行匹配
/x 忽略空白模式
/e 可执行模式,PHP专有
/A 强制从目标字符串开头匹配
/D 使用$限制结尾字符,则不允许结尾有换行
/U 只匹配最近的一个字符串;不重复匹配

最新回复

  • 小云: 不错
  • tper: 你列子中按分类归档的图片,每个分类下面显示分类下的文章的代码是怎...
  • 小云: 写的很不错
  • 女装品牌: 文章不错支持一下
  • memory: 升级之后不能访问是密码套件的事儿。其实可以配置好一个写公共文件引...
  • 欧文斯: 很奇怪,都升级之后 443 SSL 加密不能访问,其他端口却可以
  • 子午书屋: 好久没使用memcache了
  • 小云: 写的不错,谢谢分享
  • yiye: 楼主你好,不知道我回复的邮件您看到没?我下载的JPress不是最...
  • memory: 海哥最近更新的新版的我还没有测试过。具体原因还不清楚。不过你可能...
  • yiye: 楼主,我下的是最新的官方mysql镜像,然后密码用户名都正确,数...
  • memory: 这个是15年的文章了,这几年不知道有没有变化 。 你可以根据错误...
  • nice: 请教下这个评论审核提示代码是直接在评论模板调用的吗,我直接用了...
  • vultr: 学习了
  • 小云: 厉害,实用
  • memory: NND。自己写的看不懂了。。。
  • memory: 服务器上的一个配置.