我正在努力自动运行我的.rb脚本。目前,我必须转到终端并输入ruby myscript
。
我的计划,因为我不确切地知道每周/每月脚本运行的时间是在文件出现在保管箱文件夹中时运行脚本。
这将是这样的:
如果在与random_file.csv
相同的文件夹中看到myscript
,
myscript
加载random_file.csv
,对其执行操作,然后将random_file.csv
保存在单独的文件夹中,并将其从保管箱文件夹中删除。
这是可能的,如果没有,那么自动化脚本有哪些好的替代方案?我是否必须确定每周/每月运行一次的时间?任何关于寻找什么的指导都表示赞赏。
答案 0 :(得分:1)
如果您使用的是Linux,则可以使用内核的inotify系统在目录更改时创建回调。与rb-inotify gem配对后,您可以配置长时间运行的脚本,以便在检测到IN_CREATE事件时执行某些操作。
更复杂的解决方案涉及检查文件时间戳或检查目录内容的差异。作为一个示例,您可以将GNU find与cron结合使用,以便在文件比某个分钟数更新时执行脚本。例如,
# Run job every 5 minutes; execute on files less than 7 minutes old.
*/5 * * * * find /path/to/dropbox -cmin -7 -exec /path/to/ruby/script {} +
这不是真正的幂等,并且有各种各样的方法可能会出现可怕的错误,但这是悬而未决的结果。除非你的系统上没有类似inotify的工具,或者不能守护你的进程,否则我会把这种事情作为最后的手段保存。尽管如此,有选择总是好的!
答案 1 :(得分:0)
自动化dropbox文件和文件夹的一种方法是使用automator。我发现此链接允许您在Dropbox文件夹上设置操作
http://www.hongkiat.com/blog/automate-dropbox-files-with-actions/