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

use*_*116 3 unix perl cron scheduled-tasks

在unix系统下..

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

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

Jen*_*ens 6

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

您阅读的crontab(5)中描述了crontab的格式

 man 5 crontab
Run Code Online (Sandbox Code Playgroud)

新cron用户最常见的问题是cron作业在最小环境下运行; 甚至PATH没有导出,所以你必须PATH在你的程序中设置.

那你的程序输出在哪里呢?stdoutstderr上的任何输出都将邮寄到您的帐户.如果你想要它在其他地方,你的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
Run Code Online (Sandbox Code Playgroud)


hd1*_*hd1 5

把它放在crontab中如下:

0 0 * * 6 /path/to/perl A.pl
Run Code Online (Sandbox Code Playgroud)

当然,这是假设你在Unix上.我对Windows没有任何线索.