贴一个脚本这个脚本是rsync远程同步使用的一个脚本
rsync -avz --progress --exclude .git /Users/piperck/Desktop/gogogo/x piperck@:/home/piperck/project
在mac下配合fswatch使用可以达到监控文件变化,然后进行远程同步的目的。
fswatch -o /Users/piperck/Desktop/gogogo/x | xargs - -n -I {} rsync -avz --progress --exclude .git /Users/piperck/Desktop/gogogo/x piperck@ip:/home/piperck/project
rsync 本身进行文件传输的能力也非常强大和高效。
有时候我们可能会用来传输大量文件
如果不需要校准不进行增量传输的话可以使用 rsync -avW 来进行传输。 -z 是会对传输内容进行压缩,所以如果我们只是需要单纯的最大速度将现在的文件内容或者文件夹内容全力传输到目的地。我们会这用 -W 命令来关闭判断对方是否已经有这个文件以及对文件进行更新。
-W, --whole-file 拷贝文件,不进行增量检测
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-v, --verbose 详细模式输出
-z, --compress 对备份的文件在传输时进行压缩处理
这样可以保证我们用最大速度将文件内容传输至目标文件。 有时候大量细碎文件进行随机读取并且传输速度可能会慢得难以忍受。所以才有了之后直接快递硬盘的操作! XD
reference:
https://serverfault.com/questions/18125/how-to-copy-a-large-number-of-files-quickly-between-two-servers
https://github.com/emcrisostomo/fswatch/wiki/How-to-Use-fswatch fswatch tutorial
https://segmentfault.com/a/1190000005053788 ->hello fswatch
http://os.51cto.com/art/201006/203217.htm -> rsync命令全解
http://c.biancheng.net/cpp/view/2739.html -> Shell特殊变量:shell $0,$#,$*,$@,$?,$$和命令行参数
http://suren1986.in/?tag=fswatch -> 监听fsevents事件自动同步文件夹