我正在尝试创建一个单行 /etc/cron.d/ cron 条目,它多次运行相同的命令,本质上是为了创建多个线程,用于长时间运行的作业:
* * * * * usertorunas "for i in {1..6} ; do curl -s 'https://www.example.com/path' &>/dev/null & ; done"
我在这里做错了什么?它不会执行,因为 中没有显示任何内容ps aux
。
这可能是使用具有不同循环语法的任何 shell 的问题吗for
?前缀SHELL=/bin/bash
没有任何效果。
我意识到我可以将同一件事列出六次,但这似乎是一种相当粗鲁的做事方式。
这是在 Ubuntu 22.04 上。
&
应删除外部双引号,并且使用两者并;
终止语句是错误的- 请参阅使用 bash "&" 运算符和 ";"示例。轮廓线?同样,cron 默认使用 /bin/sh 运行作业,它不支持大括号扩展或
&>
组合重定向 - 因此要么将其替换为 POSIX 等效项:或
SHELL=/bin/bash
在作业之前设置