Esto es lo que me gustaría automatizar:
00 08 * * * psql -Uuser database < query.sql | mail [email protected] -s "query for `date +%Y-%m-%dZ%I:%M`"
Aquí está el mensaje de error:
/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file

Respuestas:
Desde crontab (5) :
Simplemente agregue barras invertidas antes de los signos%:
fuente
Para resolver el problema, escapa de tus% caracteres .
date +%Y-%m-%ddebiera serdate +\%Y-\%m-\%dLamentablemente, esta respuesta llega un poco tarde, pero el problema no es la RUTA o los backticks: el problema es simplemente que el carácter de porcentaje '%' es un carácter especial que se utiliza para indicar un NEWLINE o un STDIN en las entradas de crontab .
Esto entra en conflicto con la entrada de formato del
datecomando. Como tal, un comando que incluye:date +%Y-%m-%dse interpretará como:date Y- m- dfuente
También tuve muchos problemas con los backticks. A veces necesita más de una aparición de comillas y backticks. Simplemente reemplácelos por $ ().
Ejemplo:
-Gilson Soares
fuente
No tiene nada que ver con los backsticks. Una cosa terrible es que cron NO ve la RUTA, y DEBE decirle a cron "¿Qué es la RUTA?" una y otra vez en las secuencias de comandos cron.
Y estoy a favor de escribir el comando en un archivo en lugar de pasar el comando literalmente en la línea cron. Es mucho más elegante tener
que
estas líneas pueden ir dentro de un archivo, chmod + x, y este archivo debe ser invocado.
fuente