A montagem falha e não tem tempo limite

1

Eu tenho um script que é executado a cada 30m e verifique se / mnt / controlurg está montado. Se não, ele tenta montá-lo e obter alguns arquivos dele (é uma unidade do Windows). Antes de 12.04 eu não tive problemas, mas agora, quando o script não pode montar (por qualquer motivo) a unidade remota, o comando de montagem não termina e mantém como um processo em segundo plano. E ainda pior, um novo processo de montagem de plano de fundo de zumbi é criado a cada 30m e a média de carga do processador está ficando alta (agora é 44% !!).

Verificando processos em execução Eu recebo várias entradas assim:

root     29458 29420  0 08:35 ?        00:00:00 mount /mnt/controlurg
root     29459 29458  0 08:35 ?        00:00:00 /sbin/mount.cifs //controlurg/c$ /mnt/controlurg -o rw,noauto,user=root,passwd=example,utf8
  • Como posso matar esses processos? "kill -9 29459" não funciona.
  • Por que esses processos não expiram? Como posso matar essas montagens com falha automaticamente?

O fragmento interessante de /opt/scripts/sftpcont.shl:

cat $SCRIPT/computers.dat | while read line
do
echo 'date "+%Y/%m/%d %H:%M:%S"' ": Copying to ${line} with samba"
isalive='ping -q -c1 $line| grep "1 received" |wc -l'
if [ $isalive!= "0" ]
 then
  mount /mnt/$line
  rm /mnt/$linea/contingenciasap/*
  cp $SCRIPT/fitxers/sapfitcrip.zip /mnt/$line/contingenciasap
  umount /mnt/$line
fi
done

Thx

    
por Dimas 19.07.2012 / 09:33

1 resposta

0

Seria ótimo se você mostrasse seu roteiro. Mas de qualquer forma, você tem que usar o comando de saída como:

mount <partition> /mnt/controlurg || exit 1

Este comando apenas irá parar de executar o script. Você pode mostrar alguma mensagem (ou escrever no arquivo de log) como:

mount <partition> /mnt/controlurg || eval 'echo "Error mounting partition" 1>&2; exit 1'

mount <partition> /mnt/controlurg || eval 'echo "Error mounting partition\n" >> mount.log; exit 1'

Para matar todos os processos, use o comando killall .

    
por Viktor K 19.07.2012 / 11:05