shell脚本mysqldump无法从cron正确执行

时间:2018-03-19 13:25:27

标签: mysql shell cron

我有一个shell脚本,我是从trante的回答中得到的:

Linux shell script for database backup

脚本从命令行正确运行并创建mysql备份。

但是,当它从cron作业运行时,脚本会执行并创建一个mysqldump文件,但该文件为空。

我已尝试在脚本中设置PATH环境,但我尝试过的任何工作都没有。

此致

编辑:

添加脚本

#!/bin/sh
now="$(date +'%d_%m_%Y_%H_%M_%S')"
filename="db_backup_$now".gz
backupfolder="/mybackupfolder"
fullpathbackupfile="$backupfolder/$filename"
logfile="$backupfolder/"backup_log_"$(date +'%Y_%m')".txt
echo "mysqldump started at $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
mysqldump --user=myuser --password=mypassword --default-character-set=utf8 mydatabase | gzip > "$fullpathbackupfile"
echo "mysqldump finished at $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
chown myuser "$fullpathbackupfile"
chown myuser "$logfile"
echo "file permission changed" >> "$logfile"
find "$backupfolder" -name db_backup_* -mtime +8 -exec rm {} \;
echo "old files deleted" >> "$logfile"
echo "operation finished at $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
echo "*****************" >> "$logfile"
exit 0

1 个答案:

答案 0 :(得分:0)

最后我找到了解决方案。

您必须将路径放在以下行中的mysql:

mysqldump --user=myuser --password=mypassword..

在我的情况下是:

/opt/bitnami/mysql/bin/mysqldump --user=myuser --password=mypassword..