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-%d
debiera serdate +\%Y-\%m-\%d
Lamentablemente, 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
date
comando. Como tal, un comando que incluye:date +%Y-%m-%d
se interpretará como:date Y- m- d
fuente
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