我想要一组每小时,每天,每周的文件,比如/ etc /,但是对于我运行的每个应用程序.
理想情况下我喜欢cron
/ srv / www / * / current / config / cron对他们来说.
这样我就可以在/ srv / www中添加一个新的Rails应用程序,并让cron在下次运行时获取新的作业.
这是一厢情愿的想法吗?
解决方法
您是否尝试使用相应的cron.hourly,cron.daily,cron.weekly和cron.monthly目录,其中包含每个rails应用程序的脚本?如果是这样,建立John所说的内容,如果要将以下内容添加到/ etc / crontab中,您将获得所需的结果:
01 * * * * root for i in /srv/www/*/current/config/cron.hourly ; do run-parts "$i" > /dev/null 2>&1 ; done 02 4 * * * root for i in /srv/www/*/current/config/cron.daily ; do run-parts "$i" > /dev/null 2>&1 ; done 22 4 * * 0 root for i in /srv/www/*/current/config/cron.weekly ; do run-parts "$i" > /dev/null 2>&1 ; done 42 4 1 * * root for i in /srv/www/*/current/config/cron.monthly ; do run-parts "$i" > /dev/null 2>&1 ; done
然后,每个应用程序只需指定所需的cron.X目录子集,并使用相关脚本填充它.
但是,如果您想为每个应用程序只为每个频率提供一个可选脚本,那么您需要执行更多类似的操作:
01 * * * * root for i in /srv/www/*/current/config/cron.hourly ; do [ -x "$i" ] && "$i" ; done 02 4 * * * root for i in /srv/www/*/current/config/cron.daily ; do [ -x "$i" ] && "$i" ; done 22 4 * * 0 root for i in /srv/www/*/current/config/cron.weekly ; do [ -x "$i" ] && "$i" ; done 42 4 1 * * root for i in /srv/www/*/current/config/cron.monthly ; do [ -x "$i" ] && "$i" ; done
同样,这只会针对指定它们的应用程序运行.
你正在寻找的其中一个?