从 crontab 的联机帮助页来看还不清楚。字段之间是否允许有额外的空白?例如,如果我有这个:
1 7 * * * /scripts/foo
5 17 * * 6 /script/bar
31 6 * * 0 /scripts/bofh
像这样重新格式化是否安全:
1 7 * * * /scripts/foo
5 17 * * 6 /script/bar
31 6 * * 0 /scripts/bofh
?
答案1
是的,允许有额外的空间,您可以很好地排列字段以提高可读性。从man 5 crontab
Blank lines and leading spaces and tabs are ignored.
和
An environment setting is of the form,
name = value
where the spaces around the equal-sign (=) are optional, and any sub‐
sequent non-leading spaces in value will be part of the value assigned
to name.
对于字段本身,手册页显示:
The fields may be separated by spaces or tabs.
这应该很清楚:允许有多个空格。
答案2
是 允许额外的空白。考虑:
#Mins Hours Days Months Day of the week
10 3 1 1 * /bin/echo "I don't really like cron"
30 16 * 1,2 * /bin/echo "I like cron a little"
* * * 1-12/2 * /bin/echo "I really like cron"
我总是添加列标题,因为我懒得记住所有数字的顺序,但以下是 crontab 生成的内容:
这个 crontab 应该每隔一个月(每个偶数月)回显“我真的很喜欢 cron”。显然,只有当你真的喜欢 cron 时,你才会这样做。 crontab 还会在 1 月和 2 月每天 16:30 回显“我有点喜欢 cron”。它还会在 1 月 1 日 3:10 回应“我不太喜欢 cron”。