脚本无法作为 cron 任务运行

脚本无法作为 cron 任务运行

我编写了一个脚本,用于在 OS X 计算机(v 10.7.4)上验证卷是打开还是关闭。如果卷关闭,它应该发送一封电子邮件。当我从命令行运行该脚本时,它运行正常,并在我收到的电子邮件中显示我的控制卷(DGS_Ima_ASDF_ges_MTL)已关闭。但是,如果我在 crontab 中安排该脚本,它会在收到的电子邮件中显示我的所有卷(包括我的控制卷)都已关闭。有人可以告诉我如何修复这个问题吗?这是我的脚本:

#!/bin/bash

array=("Chatelaine" "DGS_Ima_ASDF_ges_MTL" "FMC_MTL" "GF_MTL" "Holding_Tank_MTL" "LACM_MTL" "LAP_MTL" "actualite" "Loulou" "Loulou_Web" "MQC_MTL" "PS_MTL" "QP_MTL" "Visuels_MTL")

[email protected]
SAVE_TO=~/Documents/drives_not_mounted
CRONTAB_CONFIG=~/Documents/crontab_paramaters

rm $SAVE_TO

for counter in ${!array[*]}
do
   mount | grep ${array[counter]}
   if [ $? -ne 0 ]; then
       echo "${array[counter]}" >> $SAVE_TO
   fi
done

ls ~/Documents | grep drives_not_mounted
if [ $? -eq 0 ]; then
    mailx -s "Mounted volumes are down" "$EMAIL_ADDRESSES" < $SAVE_TO
fi

exit;

答案1

首先,将以下 PATH 行添加到您的 crontab 文件中:

 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

其次,配置 cron 将脚本的输出记录到日志文件,以便您可以进一步排除故障,方法是在 cron 作业行旁边添加以下内容:

 &> /path/to/log.txt

相关内容