大家好,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/Scripts/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 并没有提供任何有关脚本未运行时发生的情况的分析。