Crontab无法正常工作

时间:2011-10-06 07:46:49

标签: linux ubuntu crontab

我使用crontab -e添加以下内容:

36 * * * * /root/Backup/backup.sh

但它不起作用!

我在syslog中找到了它,但它实际上没有运行:

Oct  6 15:36:01 ubuntu CRON[7685]: (root) CMD (/root/Backup/backup.sh)

如果我直接运行它,我确定我的脚本可以正常运行。

# 
# define a function to create directory
# 
fnCreateFolder()
{
        if [ ! -d $1 ]; then
                mkdir $1
                echo "New directory, '$1', is created"
        fi
}
############################################################################
#
# Full pathname to binaries to avoid problems with aliases and builtins etc.
#
DATECMD="/bin/date"
RMCMD="/bin/rm"
subdir=`${DATECMD} +%Y-%m-%d`
if [ ! -d "$subdir" ]; then
        fnCreateFolder "$subdir"
fi
############################################################################
        subdir=`${DATECMD} +%Y-%m-%d`
        fnCreateFolder "$subdir"
        datetime=`${DATECMD} +%Y-%m-%d_%Hh%Mm%Ss_%p`
        echo "date-time: $datetime"
        backupname="Backup@$datetime.sql"
        # backup DB
        mysqldump -u'sun' -p'sun2010fyp' smartward > $backupname
        echo "start tar cvzf Backup($datetime).tar.gz $backupname"
        # zip the backup file
        tar cvzf "Backup($datetime).tar.gz" "$backupname"
        echo "finished zip $backupname as Backup($datetime).tar.gz"
        # move tar file to dest folder
        echo "& move it to the destination directory"
        mv "Backup($datetime).tar.gz" "$subdir"
        # & remove the backup file after zipping it
        ${RMCMD} -f "$backupname"
        echo "finally removed $backupname"
#DONE

3 个答案:

答案 0 :(得分:3)

你遗失的两件事:

  1. 脚本应以#!/ bin / sh
  2. 开头
  3. 脚本应该是可执行的:chmod u + x /root/Backup/backup.sh
  4. 或者,您可以将crontab条目更改为以下内容: 36 * * * * / bin / sh /root/Backup/backup.sh

    的信息: 您可以直接从/ bin / sh调用脚本,或者需要向shell(cron的环境)提供足够的信息以使用正确的解释器执行脚本。这是由第1项处理的。此外,由于您尝试直接执行脚本,因此它必须是可执行的。

答案 1 :(得分:1)

尝试将stdout和stderr传输到文件中。例如。 /..../backup.sh> / tmp / backup-output 2>& 1并检查。还要检查cron运行它和在命令行上运行它之间是否存在环境问题。将env放在文件的开头。

您还确定Backup应以大写字母开头吗?

答案 2 :(得分:0)

谢谢大家 问题已经解决了 我在shell脚本中使用绝对路径而不是相对路径。