Script não funciona como cron job [closed]

1

Eu tenho um script que eu escrevi para verificar em uma máquina OS X (v 10.7.4) se um volume está ativo ou inativo. Se cair, é suposto enviar um email. Quando executo o script a partir da linha de comando, ele funciona perfeitamente e mostra meu volume de controle (DGS_Ima_ASDF_ges_MTL) como inativo no e-mail que recebo. No entanto, se eu programar o script no crontab, ele diz que todos os meus volumes estão inativos, incluindo meu volume de controle, no email que recebo. Alguém pode me dizer como consertar isso? Este é o meu script:

#!/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;
    
por zdarma 09.08.2013 / 17:26

1 resposta

2

Primeiro, adicione a seguinte linha PATH ao seu arquivo crontab:

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

Em segundo lugar, configure o cron para registrar a saída do script em um arquivo de log para que você possa solucioná-lo posteriormente, adicionando o seguinte ao lado da própria linha da tarefa do cron:

 &> /path/to/log.txt
    
por 09.08.2013 / 17:41