我有以下脚本将数据库备份保存到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。为什么会发生这种情况,我需要做些什么才能解决这个问题?
答案 0 :(得分:2)
cron作业在用户cron
下执行,默认情况下,该作业不能访问您的S3凭据。我想你将它们存储在S3_*
环境变量中,但是cron作业在几乎为空的环境中执行。