Eu sugiro que você coloque
LC_NUMERIC=en_US.UTF-8 /usr/bin/printf "%s %s %'d %'d\n" $(/usr/bin/tail -n 31 /var/log/bandwidth)
em um arquivo e chmod-lo para 770 e colocar esse nome de arquivo lá no crontab.
Eu quero imprimir uma saída formatada de um arquivo contendo linhas de data, hora, número longo e número longo. Eu defino LC_NUMERIC
para UTF e uso os caracteres% bandeira%'d
para produzir um agrupamento numérico de milhares.
A seguinte linha no crontab produz um erro de
/bin/sh: -c: line 0: unexpected EOF while looking for matching '"'
quando o cronjob é executado.
@daily LC_NUMERIC=en_US.UTF-8 /usr/bin/printf "%s %s %'d %'d\n" \
$(/usr/bin/tail -n 31 /var/log/bandwidth)
Nova linha adicionada para legibilidade
A linha idêntica (sem @daily
) em um script funciona bem.
Eu acho que o cron está sufocando na parte %'d
e não consegue encontrar o fechamento "
. Por quê?
Eu sugiro que você coloque
LC_NUMERIC=en_US.UTF-8 /usr/bin/printf "%s %s %'d %'d\n" $(/usr/bin/tail -n 31 /var/log/bandwidth)
em um arquivo e chmod-lo para 770 e colocar esse nome de arquivo lá no crontab.
Para definir variáveis de ambiente em um arquivo crontab
, você precisa colocá-las em sua própria linha. A configuração afetará todos os comandos do cron após essa linha.
LC_NUMERIC=en_US.UTF-8
@daily /usr/bin/printf "%s %s %'d %'d\n" $(/usr/bin/tail -n 31 /var/log/bandwidth)
Mas sem saber o que há em /var/log/bandwidth
, é impossível dizer qual é o verdadeiro problema lá.