Estou tentando criar uma entrada /etc/cron.d/ cron de linha única, que executa o mesmo comando várias vezes, essencialmente para criar vários threads, para trabalhos de longa duração:
* * * * * usertorunas "for i in {1..6} ; do curl -s 'https://www.example.com/path' &>/dev/null & ; done"
O que estou fazendo de errado aqui? Ele não é executado, pois nada é mostrado em ps aux
.
Talvez isso seja um problema com qualquer shell que está sendo usado, tendo uma sintaxe diferente para o for
loop? A prefixação SHELL=/bin/bash
não tem nenhum efeito.
Sei que poderia listar a mesma coisa 6 vezes, mas essa parece uma maneira bastante grosseira de fazer as coisas.
Isso está no Ubuntu 22.04.
As aspas duplas externas devem ser removidas e é um erro usar ambas
&
e;
encerrar uma instrução - veja, por exemplo, Usando o operador bash "&" com ";" delineador?Além disso, o cron executa trabalhos usando /bin/sh por padrão, que não suporta expansão de chaves ou
&>
redirecionamento combinado - portanto, substitua-os por equivalentes POSIX:ou definido
SHELL=/bin/bash
antes do trabalho