Я могу отлично запускать такие команды, как вакуумные базы данных, pg_dump и psql, если буду вводить их так:
/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" (минус двойные кавычки).
Кто-нибудь знает, что дает?