我应该将该行添加到我的 ESXi 上的 /var/spool/cron/crontabs/root /bin/echo
"0 3 * * 6 /ghettoVCB-master/ghettoVCB.sh -g /ghettoVCB-master/text.conf -f /ghettoVCB-master/text.list > /var/log/ghettoVCB-month-$(date +%m)-week-$((($(date +\%d)-1)/7+1)).log"
>>
/var/spool/cron/crontabs/root
:。
$(date +%m)
但是此命令行添加了和的结果$((($(date +\%d)-1)/7+1))
。
如何将此行添加为公式?提前致谢。
答案1
这里有一些需要改进的地方:
cron
不会注意到直接对 中的文件所做的更改/var/spool/cron
。请改用crontab -e
。
还有/etc/crontab
,对于此类系统范围的维护任务,它可能更适合。(
中的 crontab是唯一可以直接编辑的。它们的格式也与通过命令公开的格式不同。)/etc
/etc/cron.*
crontab
%
是 crontabs 中的特殊字符。在参数中使用它时,请使用反斜杠将其转义,例如date +\%m
。date
应该将格式字符串理解%W
为“一年中的周数,以星期一为第一天(00..53)” - 无需自己计算。您的 cron 可能无法在支持进程替换 ( ) 的 shell 中运行 crontab 命令
$()
。您可以在类似的 shell 中明确运行命令sh -c 'echo $(date) > /tmp/foo'
以确保万无一失。