如何在每个星期六的特定时间运行脚本?

时间:2013-06-01 13:11:00

标签: perl unix cron scheduled-tasks

在unix系统下..

我想在每个星期六运行一个perl脚本A.pl。我尝试了下面的代码,它的工作原理。但我想知道是否存在任何其他代码可以工作,但不会在繁忙的循环中继续检查时间?

while(1)
{
        @Time = localtime();
        if( $Time[6] eq "6" )
        {
                `perl A.pl`;
        }
}

3 个答案:

答案 0 :(得分:6)

在Unix下,定期运行程序是cron的工作。用户可以使用crontab -e命令将其作业编辑到 crontab 中(将您的EDITOR环境变量设置为您喜欢的编辑器)。

crontab的格式在 crontab(5)中描述,您可以使用

阅读
 man 5 crontab

新cron用户最常见的问题是cron作业在最小环境下运行;甚至不导出PATH,因此您 在程序中设置PATH

那么你的程序输出在哪里? stdout stderr 上的任何输出都将邮寄到您的帐户。如果你想在其他地方使用它,你的crontab行必须重定向输出,例如使用像这样的crontab条目(注意:sh语法,而不是csh语法!):

# Quarter past 8 on Saturdays.
15 20 * * 6  /home/user/bin/A.pl >/home/user/A.stdout 2>/home/user/A.stderr

答案 1 :(得分:5)

将其放入crontab,如下所示:

0 0 * * 6 /path/to/perl A.pl

当然,假设您使用的是Unix。我对Windows没有任何线索。

答案 2 :(得分:1)

如果您使用的是unix / linux系统,可以将A.pl脚本放在crontab中。