用脑思考,用心琢磨,用行动证实 [登录·注册]

吕滔博客

首页 开发 运维 工具 摄影

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个
  • 发布文章:1308篇
  • 用户评论:687条
  • 开博至今:3976天

正则速查

[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? 零个或多个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 只匹配最近的一个字符串;不重复匹配

最新回复

  • memory: 这是我3年前玩过一次,当时因为安装完后,发现日常办公还好,但是好...
  • sdf: 想问一下,激活工具激活后,后面会出现提示要再次重新激活吗?
  • memory: 你要用碗装我吗?还是要我把扔的扔进你碗里???!!! &^_^&
  • 薛才杰: 同感,快扔到我的碗里来。。。
  • memory: 要说明一下,在大陆及香港的云主机或VPS,都是不支持的。原因都懂...
  • 历史趣谈LishiQtan: 很好的文章,值得收藏
  • memory: 现在回头看,,,这么烂的代码,也是醉了.
  • memory: 有空试试apache的
  • 脚踏实地: rInfo数组是怎么来的
  • 朋友们: 我都是这么建站的
  • memory: 明眼人.
  • 上官元恒: $lunarInfo数组是怎么来的,这是重点
  • memory: 你知道的太多了...
  • yjl: 这个肯定解决的不是空间的问题,可能是复用的问题,有可能是“站群”的问题
  • Smithd994: Hello! This post could not be wr...
  • memory: controll文件assign ,然后模板文件中直接foreach
  • mike: 你好,yaf怎么使用循环输出数据到模板中