在CentOS中为XAMPP运行MySQLdump

在CentOS中为XAMPP运行MySQLdump,xampp,mysqldump,crontab,Xampp,Mysqldump,Crontab,希望我能在正确的论坛上发布 基本上,我正在尝试运行一个脚本,该脚本将执行MySQL数据库转储,当我手动运行它时,该转储工作正常,但由于某种原因,crontab似乎没有运行该特定脚本 我的crontab是这样设置的(出于测试目的,每分钟运行一次): 脚本的设置如下所示: #!/bin/bash # Script to backup the database /opt/lampp/bin/mysqldump -u root xyz > backup_$(date +%Y%m%d).sql ec

希望我能在正确的论坛上发布

基本上,我正在尝试运行一个脚本,该脚本将执行MySQL数据库转储,当我手动运行它时,该转储工作正常,但由于某种原因,crontab似乎没有运行该特定脚本

我的crontab是这样设置的(出于测试目的,每分钟运行一次):

脚本的设置如下所示:

#!/bin/bash
# Script to backup the database
/opt/lampp/bin/mysqldump -u root xyz > backup_$(date +%Y%m%d).sql
echo " backup_$(date +%Y%m%d)" > /opt/lampp/htdocs/xyz/backup/log.txt
我知道脚本会运行,因为log.txt是创建的。但由于某些原因,没有生成SQL文件。我也知道那条线

/opt/lampp/bin/mysqldump -u root xyz > backup_$(date +%Y%m%d).sql
因为如果我在命令行运行它,它会生成文件


非常感谢任何帮助

此脚本在哪个用户ID下运行?它将尝试将您的备份文件写入该特定帐户的homedir。确保此帐户具有该目录的写入权限,并且可以访问指向该位置的所有父目录

除此之外,请注意,您的脚本有点急躁。考虑一下你(也许)会设定脚本每天晚上11点运行。如果转储时间超过1小时,您将在日志文件中转储一个不同的日期(顺便说一句,由于您使用的是
,而不是
>
,因此将覆盖而不是追加日志文件)。要解决这个问题,您需要在脚本开始时生成/分配日期给一个变量,然后使用该变量,而不是以后的更多日期调用。

尝试以下方法:

/opt/lampp/bin/mysqldump -u root xyz > backup_$(date +%Y%m%d).sql

将root用户的密码
-p(password)
放在没有空格的地方,它应该可以工作。

因此,当crontab运行shell脚本时,备份(date).sql文件实际上保存在/root文件夹下


手动运行shell脚本会将SQL文件放置在shell脚本所在的位置

您好,感谢您的及时回复,脚本和crontab是用root帐户创建的,所以它应该不会有任何问题吧?这只是一个测试环境,真实的环境在脚本中没有回声
/opt/lampp/bin/mysqldump -u root xyz > backup_$(date +%Y%m%d).sql