【问题标题】:How to run a script at a specific time, like every Saturday?如何在特定时间运行脚本,比如每个星期六?
【发布时间】:2013-05-28 04:59:22
【问题描述】:

unix系统下..

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

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

【问题讨论】:

  • 您在哪个操作系统上?视窗? Linux?苹果? (...)
  • 你真的想重复运行这个,运行之间没有间隔吗?
  • @WilliamPursell 不,所以我来这里寻求帮助......

标签: perl unix cron scheduled-tasks


【解决方案1】:

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

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

 man 5 crontab

对于新的 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

【讨论】:

    【解决方案2】:

    如下放入crontab

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

    当然,这是假设您使用的是 Unix。我对 Windows 毫无头绪。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 如何在 crontab 中放一些东西?具体步骤是什么?
      • @hd1 我看到了你的答案!不要气馁一个新来的人......我试着给他/她一些线索如何写一个可以接受的答案......
      • type: crontab -e 然后输入以下行(如上面发布的@Jens):0 0 * * 6 /path/to/perl A.pl ie: 0 0 * * 6 /usr/ bin/perl A.pl
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 2020-11-01
      • 1970-01-01
      • 2013-02-16
      • 2022-11-14
      • 1970-01-01
      相关资源
      最近更新 更多