Я могу запускать команды, такие как vacuumdb, pg_dump и psql, просто отлично в script, если я их предикатно:
/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
Они запускаются в командной строке на Redhat, когда я sudo для root, а затем, как вы видите в приведенных выше командах, я делаю sudo -u для postgres.
Но когда я пытаюсь отключить это от cron, , я получаю нулевые байты во всех файлах - это означает, что он не запускался должным образом. И я не понимаю ключ в журналах что я вижу.
Мой файл /etc/crontab имеет эту запись внизу
00 23 * * * root /etc/db_backup.cron
И да, /etc/db _backup.cron - это chmod ug + x, принадлежащий root, а в верхней части файла указано "#!/bin/ bash" (минус doublequotes).
Кто-нибудь знает, что дает?