我有一些需要每三天运行一次的Perl脚本,下面是我input的语法,你能不能让我知道,这是正确的还是错误的。
30 19 * * */3 root /var/scripts/svn_backup.pl
这是不对的。 最后一列是星期几。 您可能要将*/3移至第三列(月中的某一天):
* * * * * command to be executed - - - - - | | | | | | | | | +----- day of week (0 - 6) (Sunday=0) | | | +------- month (1 - 12) | | +--------- day of month (1 - 31) | +----------- hour (0 - 23) +------------- min (0 - 59)
* / 3在你的规格应该是错误的列
30 19 */3 * * root /var/scripts/svn_backup.pl
* / 3语法与1,4,7 … 25,28,31相同。 请注意,有些月份它会在31 日运行,下个月它会在1 日运行,因为间隔规格不会换行,它们总是从序列的开始处开始。 在这种情况下,您的脚本不需要所需的间隔运行。
如果您需要每三天运行一次,那么您将不得不每天运行脚本,并确定是否已经过了3天,并根据情况退出/继续。
在Perl中你可以做类似的事情
if ( int (time/86400)%3 != 0) {exit 0};
它将每三天基于UNIX纪元运行脚本。