puedo ejecutar comandos como vacuumdb, pg_dump y psql muy bien en una secuencia de comandos si los prefacio de este modo:¿Cómo hago una copia de seguridad de mi base de datos PostgreSQL con Cron?
/usr/bin/sudo -u postgres /usr/bin/pg_dump -Fc mydatabase > /opt/postgresql/prevac.gz
/usr/bin/sudo -u postgres /usr/bin/vacuumdb --analyze mydatabase
/usr/bin/sudo -u postgres /usr/bin/pg_dump -Fc mydatabase > /opt/postgresql/postvac.gz
SCHEMA_BACKUP="/opt/postgresql/$(date +%w).db.schema"
sudo -u postgres /usr/bin/pg_dump -C -s mydatabase > $SCHEMA_BACKUP
Estos se ejecutan en la línea de comandos en RedHat cuando estoy sudo para la raíz y luego como se ve en los comandos anteriores hago un sudo -u a postgres.
Pero cuando trato de sacar esto de cron, obtengo cero bytes en todos los archivos, lo que significa que no se ejecutó correctamente. Y no tengo ni idea de los registros que puedo ver.
Mi archivo/etc/crontab tiene esta entrada en la parte inferior
00 23 * * * root /etc/db_backup.cron
Y sí, es /etc/db_backup.cron ug chmod + x, propiedad de root, y la parte superior del archivo dice " #!/bin/bash "(menos dobles comillas).
¿Alguien sabe lo que ofrece?
al menos en redhat,% símbolos debe escaparse. si no se escapa, cron intentará ejecutar tu comando solo hasta el%. Ver - http://fahdshariff.blogspot.com/2009/05/percent-sign-in-crontab.html – chrismarx