帮助,ubuntu server 14.04 crontab 无法运行我的数据库备份脚本,但其他简单脚本可以

帮助,ubuntu server 14.04 crontab 无法运行我的数据库备份脚本,但其他简单脚本可以

大家好,Ubuntu 服务器专家

我需要帮助解决这个 crontab 问题。因此,我在 /etc/crontab 中做了更改,以运行系统脚本进行数据库备份。crontab 似乎没有运行我的脚本,我无法在任何地方查看 crontab 状态。我甚至为我的 ubuntu 服务器使用了 root 帐户。

因此,我在 crontab 中编写了一个简单的 echo 脚本,它运行正常。我的脚本有什么问题?

以下是一些线索:这是我的 /etc/crontab 文件

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/DataBank/Bac$

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --repo$
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --repo$
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --repo$
*  *    * * *   root    sh /DataBank/Backup/Scripts/backupdb.sh --> this one does not run
*  *    * * *   root    echo "Running Sample Crontab by the minute: $(date)" >>$ --> this one works

这是我的备份脚本,位于 /DataBank/Backup/Scr​​ipts/backupdb.sh:

echo "Backing up database... $(date)" >> backuplog.txt
DBFILENAME=db`date "+%Y%m%d-%H.%M.%S"`.sql
/Tech/MySQL/Server/bin/mysqldump -c ITWorksEEDB > ../DB/$DBFILENAME --user=root$
echo "Backup done: $DBFILENAME $(date)" >> backuplog.txt

和我的备份文件权限:(全部777)

root@MoMa:/DataBank/Backup/Scripts# ls -al
total 11
drwxrwxrwx 1 root root 4096 Jan  4 13:03 .
drwxrwxrwx 1 root root 4096 Oct  8 21:13 ..
-rwxrwxrwx 1 root root  257 Jan  4 13:05 backupdb.sh
-rwxrwxrwx 1 root root  257 Jan  4 13:32 backupdb.sh.bak
-rwxrwxrwx 1 root root  236 Jan  4 13:05 backuplog.txt
-rwxrwxrwx 1 root root   79 Jun 25  2013 shutAll.sh
-rwxrwxrwx 1 root root   55 Aug 23  2012 shutSPC.sh

当我使用“sh backupdb.sh”手动运行 backupdb.sh 时,它运行正常。当我使用此命令:./backupdb.sh(不带 sh)时,会出现以下错误消息:

root@MoMa:/DataBank/Backup/Scripts# ./backupdb.sh
-bash: ./backupdb.sh: Permission denied --> My backupdb.sh file is supposed to be 777

有人能帮助我如何让脚本在 crontab 中运行,或者至少在运行脚本时查看 crontab 返回的状态吗?

谢谢你 Rendra

答案1

我要回答我自己的问题...经过反复试验后,它实际上很简单...在 crontab 中设置的脚本必须包含完整路径,而不是相对路径。

我希望我的经验能够对任何人有所帮助,因为 crontab 并没有提供任何有关脚本未运行时发生的情况的分析。

相关内容