OS X使用fswatch+rsync自动检测文件夹改动并同步
2016-02-21 22:59
567 查看
Linux下面可以使用http://linux.die.net/man/1/inotifywatch (inotify-tools包)来进行文件夹、文件变更的检测
fswatch是一个使用Mac OS X FSEvents API的同步工具,同时也可以使用在BSD 与Debian操作系统 Mac FSEvent Api Doc
安装:
命令行使用:
直接执行命令
即可监控 ~/Downloads/a/,当文件内容变化时,输出变动的文件列表
简单的bash使用,fswatch监听变动后,执行rsync语句
以上脚本可以正常执行,但是有个BUG,就是在同步过程中,如果删除或者添加了一个文件夹,里面有上百个文件,那么就会导致do...done会执行上百次。所以不能改变一个文件就同步一次
以上脚本比较适合用于Blog更新上传,在本地通过hexo等生成静态博客发布到github pages。
fswatch是一个使用Mac OS X FSEvents API的同步工具,同时也可以使用在BSD 与Debian操作系统 Mac FSEvent Api Doc
安装:
# MacPorts $ port install fswatch # Homebrew $ brew install fswatch
命令行使用:
直接执行命令
fswatch ~/Downloads/a/
即可监控 ~/Downloads/a/,当文件内容变化时,输出变动的文件列表
简单的bash使用,fswatch监听变动后,执行rsync语句
#!/bin/bash fswatch /Users/kint/Downloads/a | while read file do echo "${file} was changed start sync..." rsync -avzrp /Users/kint/Downloads/a/ /Users/kint/Downloads/b done }
以上脚本可以正常执行,但是有个BUG,就是在同步过程中,如果删除或者添加了一个文件夹,里面有上百个文件,那么就会导致do...done会执行上百次。所以不能改变一个文件就同步一次
#!/bin/bash function start_moniting() { #确保在上次通过过程中改变文件能够同步 sync_files echo "start morniting folder......" fswatch -1 /Users/kint/Downloads/a # 5秒后执行同步 sleep 5 sync_files } function sync_files() { echo "start sync_files" rsync -avzrp /Users/kint/Downloads/a /Users/kint/Downloads/b #开始检测 start_moniting } sync_files
以上脚本比较适合用于Blog更新上传,在本地通过hexo等生成静态博客发布到github pages。
相关文章推荐
- XAMPP无法启动apache与mysql服务解决办法
- 各种优化方法总结比较(sgd/momentum/Nesterov/adagrad/adadelta)
- 回声消除概述
- Chapter 3、Java语法基础(二)----Java基本数据类型、变量与常量 (20th,Feb)
- Handler
- 数据结构之消息队列
- 观察者模式
- Java对象序列化追加的问题,以及Java的读取多个对象的问题解决方法。
- 集训队专题(6)1004 Card Game Cheater
- 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
- [android]常见的adb指令
- apche2.4 基于前缀域名的虚拟主机配置
- iOS基础之响应者链
- RequestInputStream获取中文乱码
- C++面向对象编程<二>:构造函数
- listView的item向左滑动实现删除
- Codeforces Round #343 (Div. 2) D. Babaei and Birthday Cake 线段树维护dp
- 258.Add Digits
- zabbix创建键值、触发器、图形
- Fragment