![脚本无法作为 cron 任务运行](https://linux22.com/image/616093/%E8%84%9A%E6%9C%AC%E6%97%A0%E6%B3%95%E4%BD%9C%E4%B8%BA%20cron%20%E4%BB%BB%E5%8A%A1%E8%BF%90%E8%A1%8C%20.png)
我编写了一个脚本,用于在 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