У меня есть сценарий, который я написал для проверки на машине 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