是否可以configurationcron(在Linux上)从login到应用程序的文件中读取用户crontab?

我想要一组每小时,每天,每周的文件,如在/ etc /但为我运行的每个应用程序。

我最好喜欢cron来看看

/srv/www/*/current/config/cron

所以我可以添加一个新的Rails应用到/ srv / www,并让cron在下一次运行时select新的作业。

这是一厢情愿吗?

你想拥有相当于cron.hourly,cron.daily,cron.weekly和cron.monthly目录与脚本在他们的每个rails应用程序? 如果是这样,build立约翰说,如果你要添加以下到您的/ etc / crontab,你会得到所需的结果:

 01 * * * * root在我的/srv/www/*/current/config/cron.hourly; 执行部分“$ i”> / dev / null 2>&1;  DONE
 02 4 * * * root为我在/srv/www/*/current/config/cron.daily; 执行部分“$ i”> / dev / null 2>&1;  DONE
 22 4 * * 0 root for i在/srv/www/*/current/config/cron.weekly; 执行部分“$ i”> / dev / null 2>&1;  DONE
 42 4 1 * * root为我在/srv/www/*/current/config/cron.monthly; 执行部分“$ i”> / dev / null 2>&1;  DONE

然后,每个应用程序就可以指定它需要的cron.X目录的子集,并用相关的脚本填充它。

但是,如果您想为每个应用程序的每个频率select一个可选脚本,那么您希望执行的操作更类似于:

 01 * * * * root在我的/srv/www/*/current/config/cron.hourly; 做[-x“$ i”] &&“$ i”;  DONE
 02 4 * * * root为我在/srv/www/*/current/config/cron.daily; 做[-x“$ i”] &&“$ i”;  DONE
 22 4 * * 0 root for i在/srv/www/*/current/config/cron.weekly; 做[-x“$ i”] &&“$ i”;  DONE
 42 4 1 * * root为我在/srv/www/*/current/config/cron.monthly; 做[-x“$ i”] &&“$ i”;  DONE

同样,这只会对指定它们的应用程序运行。

其中一个你在找什么?

有cron每小时,每天执行一个帮助程序,并有这个程序确定是否有工作要做

一个典型的crontab将具有诸如

 # run-parts 01 * * * * root run-parts /etc/cron.hourly > /dev/null 2>&1 02 4 * * * root run-parts /etc/cron.daily > /dev/null 2>&1 22 4 * * 0 root run-parts /etc/cron.weekly > /dev/null 2>&1 42 4 1 * * root run-parts /etc/cron.monthly > /dev/null 2>&1 

我不是专家,但看不到任何理由,您不能以相同的方式添加其他目录。 如果你希望它更自动化,你可以定期运行一个脚本来查找从你select的根目录开始的cron。*目录,并以编程方式将这些path添加到/ etc / crontab中,如果它们不存在的话。

首先,像这样创build一个Bash脚本:

 #!/bin/bash for web_job in /srv/www/*/current/config/cron/*; do [ -x $web_job ] && $web_job || : ; done 

将其保存为/srv/www/run_web_jobs.sh。 然后,将其添加为cron作业。 例如,为了每天运行(必须是root):

 $ ln -s /etc/cron.daily/ /srv/www/run_web_jobs.sh 

或者,将其添加到用户的crontab。

 $ crontab -e