Cron 任务似乎不起作用

Cron 任务似乎不起作用

我在 crontab 中每 5 分钟安排一次任务。

通过激活 rsyslog 中的 cron 日志来安排任务的计划,并检查它是否按计划执行:

- Right user
- Right command

日志条目示例:

Dec 23 06:40:01 computer /USR/SBIN/CRON[26422]: (myuser) CMD (bash /home/myuser/save.sh &>/home/myuser/cron.log)

我甚至尝试过:

Dec 23 06:40:01 computer /USR/SBIN/CRON[26422]: (myuser) CMD (/home/myuser/save.sh &>/home/myuser/cron.log)

示例 crontab 命令:

*/5 * * * * /home/myuser/save.sh &>/home/myuser/cron.log

该脚本具有正确的权限:它可以被执行myuser

示例脚本:

#!/bin/sh

HOME_DIR="/home/$USER"
LOGFILE=save.log
DIR_NAME="mydir"
VOLATILE="$HOME_DIR/$DIR_NAME/"
PERMANENT="$HOME_DIR/$DIR_NAME""_storage/"

if [ ! -d "$PERMANENT" ]; then
    mkdir "$PERMANENT"
fi

echo `date +%x\ %X`>$HOME_DIR/$LOGFILE
# Check if both directories actually exist
if [ -d "$VOLATILE" -a -d "$PERMANENT" ]; then
    # Control will enter here if both $VOLATILE and $PERMANENT exist.
    rsync -r -t -v "$VOLATILE" "$PERMANENT">$LOGFILE.output
    echo OK>>$HOME_DIR/$LOGFILE
else
    echo KO>>$HOME_DIR/$LOGFILE
    if [ ! -d "$VOLATILE" ]; then
        echo "Volatile dir does not exist">>$HOME_DIR/$LOGFILE
    fi
    if [ ! -d "$PERMANENT" ]; then
        echo "Permanent dir does not exist">>$HOME_DIR/$LOGFILE
    fi
fi

该命令是一个 bash 脚本,它可以由同一个用户手动正确执行(即使我复制粘贴在 cron 中执行的精确命令),但不会自动执行任何操作。

我将脚本的输出重定向到自定义日志文件中以检查其执行情况,当自动执行发生时该文件仍为空。

我完全迷路了,不知道出了什么问题。

我忘记了什么?

[编辑] 我正在使用 Debian 6 Squeeze

答案1

在您的 crontab 中,作业结束时是否缺少换行符?

“crontab -l”显示什么?

答案2

我遇到了同样的问题,我通过从文件名中删除“.”解决了这个问题。你的情况应该是:

*/5 * * * * /home/myuser/save &>/home/myuser/cron.log

相关内容