Mac-Osx

腳本不能作為 cron 工作

  • August 9, 2013

我有一個腳本,用於在 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_ADDRESSES=here.now@there.com
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;

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

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

其次,配置 cron 以將腳本的輸出記錄到日誌文件中,以便您可以進一步對其進行故障排除,方法是在 cron 作業行本身旁邊添加以下內容:

&> /path/to/log.txt

引用自:https://serverfault.com/questions/529909