没有哪种教育能及得上逆境 [登录·注册]

吕滔博客

首页 开发 运维 工具 摄影

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

正则速查

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

最新回复

  • 小云: 厉害,实用
  • memory: NND。自己写的看不懂了。。。
  • memory: 服务器上的一个配置.
  • haha: 是在主机端还是从机端设置
  • wu先生: 收藏备用。
  • memory: 哈哈,无所谓了。。。早改了
  • 文小刀: 真的是很标题
  • 进击的巨波: 终于找到一篇真正行的通的安装git文档,写的非常详细,感谢!
  • memory: 可以邮件告知一下具体错误给我。你可以在本地先测试一下。我这样测试...
  • 钛客志: 你好博主,我是按照你的方法设置,但是老是出错,要么站点出问题,不...
  • 小云: 受教了
  • memory: 这是个扩展,安装就有了.
  • andy: $oauth = new OAuth($conskey,$con...
  • 王者上不了: Chew_WGA v0.9可永久激活,亲测过
  • 小云: 打卡
  • 小云: 不错啊,收藏起来先
  • 小云: 收藏,很不错