希望我能把它放在正确的论坛上。
基本上,我试图运行一个脚本,它将执行一个MySQL数据库转储,当我手动运行它的时候,但是crontab似乎出于某种原因没有运行这个特定的脚本。
我的crontab是这样设置的(为了测试目的,每分钟都运行):
* * * * * /opt/lampp/htdocs/xyz/backup/backup.sh脚本是这样设置的:
#!/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工作,因为如果我在命令行运行它,它会生成文件。
任何帮助都非常感谢!
发布于 2013-10-08 20:10:31
因此,当crontab运行shell脚本时,backup_(date).sql文件实际上保存在/root文件夹下。
手动运行shell脚本将SQL文件放置在shell脚本所在的位置。
发布于 2013-09-16 12:11:17
试试这个:
/opt/lampp/bin/mysqldump -u root xyz > backup_$(date +%Y%m%d).sql将根用户-p(password)的密码放在没有空格的位置,它应该可以工作。
发布于 2012-11-20 01:43:16
这个脚本运行的用户ID是什么?它将尝试将您的备份文件写入该特定帐户的主页。请确保此帐户具有该dir的写特权,并且可以访问该位置之前的所有父目录。
除此之外,请注意,您的脚本有点粗俗。考虑一下,你(也许)会把脚本设置为每天晚上11点运行。如果转储时间超过1小时,您将将一个不同的日期转储到日志文件中(顺便说一句,您将覆盖日志文件,而不是附加日志文件,因为您正在使用>,而不是>>)。要解决这个问题,您可能希望在脚本开始时生成/将日期分配给一个变量,然后使用该变量而不是以后更多的日期调用。
https://stackoverflow.com/questions/13465357
复制相似问题