【问题标题】:Running cron produces different result than running its command运行 cron 产生的结果与运行它的命令不同
【发布时间】:2025-12-13 07:05:02
【问题描述】:

我有以下脚本可以将 db 备份保存到 s3:

# next, backup the mysql `premiered` database to the backups folder
echo successfully backed up mysql databasee
mysqldump --single-transaction -u root test | gzip  > $BACKUPFOLDER/$CONNECT

# finally, save the backups to s3 via s3fs
s3fs test-backups ./s3fs
cp $BACKUPFOLDER/$CONNECT ./s3fs/$CONNECT
echo succeessfully saved sql file to s3

当我将其作为 shell 命令$ ./backup.sh 运行时,它会正确地将文件保存到 S3。但是,当我通过 cron 运行此命令时,它实际上将文件保存到本地 ./s3fs 文件夹,而不是将其保存到 S3。为什么会发生这种情况,我需要做些什么来解决这个问题?

【问题讨论】:

  • 那是你完成环境的地方。

标签: linux bash shell amazon-s3 cron


【解决方案1】:

cron 作业在默认情况下无权访问您的 S3 凭据的用户 cron 下执行。我想您将它们存储在您的 S3_* 环境变量中,但 cron 作业在几乎空的环境中执行。

【讨论】:

    最近更新 更多