我的Perl脚本(test.pl)分钟间隔现在在crontab中运行的运行Perl脚本1没有的crontab
* * * * * perl test.pl >/dev/null 2>&1
我想运行我的脚本每隔1分钟inteval不使用crontab的。我不会有机会写cron作业到/etc/cron.d/,所以需要找到一个另一种解决方案
有没有办法做到这一点?
我的Perl脚本(test.pl)分钟间隔现在在crontab中运行的运行Perl脚本1没有的crontab
* * * * * perl test.pl >/dev/null 2>&1
我想运行我的脚本每隔1分钟inteval不使用crontab的。我不会有机会写cron作业到/etc/cron.d/,所以需要找到一个另一种解决方案
有没有办法做到这一点?
Schedule::Cron是CPAN模块,它提供了运行周期任务强大的能力。
use Schedule::Cron;
my $cron = new Schedule::Cron(sub {});
sub run_task {
# do something...
}
$cron->add_entry("0 11 * * Mon-Fri",\&run_task);
$cron->run();
强烈建议,因为:
的时间间隔触发一个任务是定制的,灵活的,几乎等同于* nix系统crontab
。所以当你有新的需求时,你可以改变你的脚本。
而不是定期运行整个脚本,它可以定期运行脚本一个单一的功能,如此反复,灵活;
尝试一个守护进程。把你的代码放在一个无限循环中,并在每次循环之间休眠60秒。我猜。
'while:while;做perl test.pl>/dev/null 2>&1;睡60多岁; done'? – devnull
你能解释一下你希望避免的“cron”吗?通常按计划运行某些东西需要运行的东西的排程系统*外部*。所以devnull的建议是一个长期运行的shell脚本,你可以停止并开始交互。我无法从你的问题中知道这是否够用 - 也许你希望脚本每次运行几分钟,并且希望避免编辑crontabs来打开和关闭它? –
@Neil Slater - 将无法在/etc/cron.d/中写入cron作业,因此需要找到另一个解决方案 – Futuregeek