我在 /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