MySQL 转储脚本手动运行,但不通过 cron 运行

MySQL 转储脚本手动运行,但不通过 cron 运行

我在 /etc/cron.daily/ 中有以下脚本,如果我手动执行它,它会完美运行,但从不会通过 cron 运行。但是 cron.daily 中还有其他脚本可以执行。

#!/bin/bash
DATE=`date +%Y%m%d`
FILENAME=mysql_$DATE.tar.gz
DESDIR=/data/mysqlbackup/

echo Deleting backups older than 30 days
echo Files deleted:
find /data/mysqlbackup/ -mtime +30 -type f -ls
find /data/mysqlbackup/ -mtime +30 -type f -delete

echo Backing up all databases
mysqldump -u backup -p --all-databases --events | gzip > $DESDIR$FILENAME

echo Backup complete:
ls -lh $DESDIR

可能是什么问题?

我正在运行 Ubuntu 14.04

答案1

在您的 shell 脚本中设置 mysqldump 的路径,然后在脚本中添加完整路径,如下所示。

例如:在你的脚本中

   mysqlpath=/path/to/mysql/instalation/bin

   $mysqlpath/mysqldump -u $USER -p$PASSWORD -h$IP  $DATABASE  > $BACKUP_DIR/$DATABASE.$DATE_STAMP.sql

答案2

在 bash 或 shell 脚本(如 whereis mysqldump)中设置 mysqldump 的路径,并在脚本中添加完整路径

/usr/bin/mysqldump -u root -p database > /backuppath/mysqldumpdate.sql

相关内容