Назад | Перейти на главную страницу

Скрипт не работает как 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_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