我有一些需要每 3 天运行一次的 Perl 脚本,以下是我输入的语法,你能告诉我,这是正确的还是错误的。
30 19 * * */3 root /var/scripts/svn_backup.pl
Run Code Online (Sandbox Code Playgroud)
use*_*517 13
*/3 在您的规范应该是错误的列中
30 19 */3 * * root /var/scripts/svn_backup.pl
Run Code Online (Sandbox Code Playgroud)
*/3 语法与 1,4,7 ... 25,28,31 相同。请注意,有些月份它将在 31日运行,而下个月它将在 1日运行,因为间隔规范不换行,它们总是从序列的开头开始。在这种情况下,您的脚本会在没有所需间隔的情况下运行。
如果您需要每 3 天运行一次,那么您必须每天运行您的脚本并让它确定 3 天是否已经过去并根据需要退出/继续。
在 perl 你可以做类似的事情
if ( int (time/86400)%3 != 0) {exit 0};
Run Code Online (Sandbox Code Playgroud)
它将基于 UNIX 时代每 3 天运行一次脚本。
qua*_*nta 11
这是错的。最后一列是星期几。您可能想要移至*/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)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13879 次 |
最近记录: |