如何检测Dropbox文件夹何时更新?

时间:2012-12-22 21:21:49

标签: linux synchronization dropbox

我有一个文件夹,其中包含在计算机之间进行同步的文件。从计算机A上传文件后,我想将它们从计算机B的Dropbox文件夹复制到另一个文件夹。如何检测Dropbox文件夹何时更新?我可以定期检查Dropbox文件夹,但也许有一个更优雅的解决方案?

3 个答案:

答案 0 :(得分:1)

结帐inotifyincrond,您可以使用其中一个工具在检测到文件夹中的更改后运行脚本。如果您选择incrond,则可以运行incrontab -e并添加以下内容:

/path/to/watched/dir IN_CLOSE_WRITE,IN_CREATE,IN_DELETE /path/to/script

在脚本中,您可以在以下情况下启动循环:

[[ $(dropbox filestatus /path/to/watched/dir) != "" ]]

或:

[[ $(lsof -p $dropbox_pid | grep 'REG|DIR.*/path/to/watched/dir') != "" ]]

然后:

cp /path/to/watched/dir /path/to/copy/dir
循环完成后

答案 1 :(得分:1)

没有! (关于接受的答案)

Dropbox目前(2012年可能有所不同)不会触发IN_CLOSE_WRITEIN_MODIFY或任何其他直观选择。 Dropbox将内容移动到临时文件,然后将其移回Dropbox目录。由此触发的inotify事件为IN_MOVE_TOIN_MOVE_FROM

因此,理想情况下,您的incrontab说明应为:

/path/to/watched/dir IN_MOVE_TO,IN_CREATE,IN_DELETE /path/to/script

答案 2 :(得分:1)

如上所述,dropbox不会触发IN_CREATE,IN_DELETE或IN_MODIFY等。它会触发IN_MOVED_TO和IN_MOVED_FROM。在Debian 8上验证。