Aqui está o que eu gostaria de automatizar:
00 08 * * * psql -Uuser database < query.sql | mail [email protected] -s "query for `date +%Y-%m-%dZ%I:%M`"
Aqui está a mensagem de erro:
/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file
Respostas:
Do crontab (5) :
Basta adicionar barras invertidas antes dos sinais de%:
fonte
Para resolver o problema, escape dos% caracteres .
date +%Y-%m-%d
deveria estardate +\%Y-\%m-\%d
Infelizmente, esta resposta está um pouco atrasada, mas o problema não é PATH ou backticks - o problema é simplesmente que o caractere de porcentagem '%' é um caractere especial usado para denotar um NEWLINE ou um STDIN nas entradas do crontab .
Isso entra em conflito com a entrada de formatação do
date
comando. Como um comando que inclui:date +%Y-%m-%d
será interpretado como:date Y- m- d
fonte
Eu também tive muitos problemas com retalhos. Às vezes, você precisa de mais de uma ocorrência de aspas e backticks. Apenas substitua-os por $ ().
Exemplo:
-Gilson Soares
fonte
Não tem nada a ver com bastões. Uma coisa terrível é que o cron NÃO vê o PATH, e você DEVE dizer ao cron "o que é o PATH?" repetidamente nos scripts cron.
E sou a favor de escrever o comando em um arquivo em vez de passar o comando literalmente na linha cron. É muito mais elegante ter
do que
essas linhas podem ir dentro de um arquivo, chmod + x, e esse arquivo a ser chamado.
fonte