通过 shell 脚本的 MySQLDump 没有被执行,为什么?

标签 mysql linux bash shell centos

大家好

我相信您在阅读此帮助请求时一切都很好。我在 Linux 领域不是很有经验,但我仍然在努力尽快学习。因此,请原谅我的任何明显的无知,并在可能的情况下提供帮助。

我正在运行 ClearOS v5.2 Enterprise 服务器(基于 Centos Linux 发行版),我在 shell 脚本中使用以下命令来备份我的 MySQL 数据库。

mysqldump -u root -pMYPASSWORD --all-databases > /mnt/shares/flexshares/backup/MySQL/mysql-backup-`date +%Y-%m-%d-%H-%M`.sql

我使用 cron 作业在每天凌晨 1:15 调用此脚本。现在,我可以在 cron 日志中看到当时执行了作业并调用了脚本,但命令没有执行(下面的日志条目)。我这样说是因为我没有在 /mnt/shares/flexshares/backup/MySQL 目录中看到正在创建的 sql 文件。

Aug 21 01:15:01 server1 crond[27842]: (root) CMD (/root/my_scripts/backup-mysql.sh)
Aug 22 01:15:01 server1 crond[9031]: (root) CMD (/root/my_scripts/backup-mysql.sh)

奇怪的是,如果我从 CLI 运行相同的命令,它会毫无问题地执行,并且 MySQL 数据库会转储到目标目录 (/mnt/shares/flexshares/backup/MySQL)。

我遗漏了什么或我在脚本中包含了什么导致它无法运行?这是我的 shell 脚本(“backup-mysql.sh”):

#!/bin/bash
# FULL BACKUP OF MySQL DATABASE
mysqldump -u root -pMYPASSWORD --all-databases > /mnt/shares/flexshares/backup/MySQL/mysql-backup-`date +%Y-%m-%d-%H-%M`.sql

我非常感谢能得到的任何帮助,谢谢。

反/反

天命

最佳答案

我认为您的命令没有从脚本中正确执行。你能试试下面的吗-

         #!/bin/sh
         DUMPFILE=mysql-backup-`date +%Y-%m-%d-%H-%M`.sql
         `mysqldump -u root -pMYPASSWORD --all-databases > $DUMPFILE`

关于通过 shell 脚本的 MySQLDump 没有被执行,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18386110/

相关文章:

python - 将excel行转换为txt文件并将其插入到python中的DB2

php - 有关数据库 sql 版本的信息

c++ - 来自 glGetError() 的 INVALID_ENUM 错误。 glGetError 与 glu、glew、glfw?

linux - Mercurial 和第三方 hg-login 脚本的问题

regex - 我遵循 Posix ERE 格式,但在 bash 中总是正确的

php - 响应式设计 - Android 不缩放

mysql - 加入有条件的表

mysql - 数据库服务器中的内存页速率非常高

bash - 递归地将嵌套文件夹内容复制到一个文件夹(终端)

bash - "set -e"不会导致代码块在有条件的情况下退出