Cronjob 无法正常运行

Cronjob 无法正常运行

我准备了一个脚本,它将使用 pgbackrest 运行我的 postgreSQL 数据库的备份,然后使用 restic 将其推送到 Backblaze B2。不幸的是,它不会执行,系统日志中也没有显示任何错误。

脚本如下:

#!/bin/bash

dayofweek=`date +"%a"`
timeofday=`date +"%k"`

if [[ $(id -u) -ne 112 ]] ; then echo "Please run as user postgres" ; exit 1 ; fi

if [ $dayofmonth == "Sun" && $timeofday == 1 ];
then
echo "running weekly backup";
pgbackrest --stanza=sonar --type=full backup;
B2_ACCOUNT_ID="ID" B2_ACCOUNT_KEY="KEY" restic -r b2:sonar-pg backup /var/lib/pg-backup/backup/sonar --password-file /restic-pw.txt;
else
echo "running daily";
pgbackrest --stanza=sonar backup;
B2_ACCOUNT_ID="ID" B2_ACCOUNT_KEY="KEY" restic -r b2:sonar-pg backup /var/lib/pg-backup/backup/sonar --password-file /restic-pw.txt;
fi

使用以下方式在控制台中手动运行时,它运行得非常好:

sudo su -ui postgres /var/lib/pg-backup/backup.sh

当作为 cronjob 运行时(在 crontab 中):

15 * * * * postgres bash /var/lib/pg-backup/backup.sh

我已尝试附加 > /tmp/backup.log,但没有写入日志。

我怎样才能更好地排除故障或解决这个问题?

编辑:解决方案:将 crontab 条目放入 /etc/crontab 文件中

相关内容