大家好,
我相信你在阅读这项援助请求时表现得很好。我在Linux世界中并不是很有经验,但我正努力尽快学习。所以请原谅任何明显的无知,并尽可能提供帮助。
我正在运行一个ClearOS v5.2企业服务器(基于Centos Linux发行版),我在shell脚本中使用以下命令来备份我的MySQL数据库。
mysqldump -u root -pMYPASSWORD --all-databases > /mnt/shares/flexshares/backup/MySQL/mysql-backup-`date +%Y-%m-%d-%H-%M`.sql
我每天上午1:15使用cron作业来调用此脚本。现在,我可以在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
我非常感谢能得到的任何帮助,谢谢。
V / R
的Kismet
答案 0 :(得分:3)
我认为您的命令无法从脚本中正确执行。你能试试以下吗?
#!/bin/sh
DUMPFILE=mysql-backup-`date +%Y-%m-%d-%H-%M`.sql
`mysqldump -u root -pMYPASSWORD --all-databases > $DUMPFILE`
答案 1 :(得分:2)
我觉得这个剧本没有问题。
请检查您是否获得了足够的执行权限,并且您的cron条目是否正确。
尝试自己执行脚本,看看是否正在生成DB文件。
答案 2 :(得分:0)
我非常感谢你的帮助。基于 @Narayan 的评论,该问题可能出在cron工作 - 我用cron工作做了一些测试,看看我的问题出在哪里。好吧,不久我尝试通过 ./ backup-mysql.sh 直接从CLI运行脚本时拒绝访问。
这促使我检查脚本文件的权限,具有讽刺意味的是它不可执行。我相信这就是脚本没有从cron工作中运行的原因。我更改了权限并进行了测试,一切正常。
我想我在Linux世界的那一天的课程,检查允许总是!无论如何,谢谢你的帮助,我真的很感激。