Crontab无法在脚本中执行命令

时间:2015-04-21 14:22:08

标签: bash sh crontab

我编写了shell脚本,当挂载点达到90%容量时,会删除目录中最旧的日志文件。当我手动运行脚本时,它工作正常,但是当我尝试使用crontab运行时,它似乎无法执行实际的rm命令,但它会执行脚本中的其他所有内容。请参阅下面的crontab和脚本。

0 * * * *  /acsmgmt/iselogs/iselogcleanup.sh

#!/bin/bash
df -H | grep /acsmgmt | awk '{ print $4 " " $5 }' | while read output;
do
    #!echo $output
    usep=$(echo $output | awk '{ print $1 }' | cut -d '%' -f1)
    #!echo $usep

    if [ $usep -ge 90 ]; then
            echo $(date) "Logs cleaned up" >> /tmp/isecleanup.log
            rm -v `ls /acsmgmt/iselogs -rt | grep "iselog-" | head -1` >> /tmp/isecleanup.log
    else
            echo $(date) "No logs to clean up" >> /tmp/isecleanup.log
    fi
done

1 个答案:

答案 0 :(得分:1)

因此,正如我所怀疑的那样,确实总是确保在PATH调用的任何脚本中指定正确且完整的cron变量。

(我自己也犯了同样的错误,即使在编写cron脚本多年之后 - 某些版本的cron允许你为所有脚本指定一个默认的PATH(和其他环境变量),这可能有所帮助,但它还需要仔细维护。)