Problema ao chamar um Shell Script pelo Incontrab [RESOLVIDO]

1. Problema ao chamar um Shell Script pelo Incontrab [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 17/05/2012 - 19:31h

Estou chamando um shell script pelo incontrab.

/home/form/Maildir/new IN_ATTRIB /home/Tec/script/organiza.sh $# $@

A minha intenção é que quando o arquivo tem uma modificação no atributo ele execute o shell.

esse meu shell copia o e-mail de /home/form/Maildir/new e manda para outras pasta /home/form/Maildir/new/qualqueroutracoisa

porem o shell não está sendo executado, o e-mail continua na pasta /home/form/Maildir/new.

O syslog apresenta a seguinte saida.
(meu usuário é Tec)

(Tec) CMD (/home/Tec/script/organiza.sh 1337290689.H388178P25191.mail0.gmail.br /home/form/Maildir/new)

o mais engraçado é que se eu pegar essa linha
(/home/Tec/script/organiza.sh 1337290689.H388178P25191.mail0.gmail.br /home/form/Maildir/new) e jogar no terminal de comando esse shell se executa corretamente.

Minha primeira suspeita era que o incrontab não estava executando o shell mas não consigo explicar então o do porque aparecer a saída daquela maneira no syslog.

Alguem consegue me ajudar ?


Meu shell script é o seguinte

(ele funciona normalmente pela linha de comando)

#!/bin/bash

email=$1
caminho=$2
grep -A 1 "=C3=81rea Pretendida" $caminho/$email > arqtemp
touch arqtemp2
sed -e 1d arqtemp > arqtemp2
NUM=`cat arqtemp2`

case $NUM in

"Circuitos") mv $caminho/$email $caminho/1/;;
"Sistemas") mv $caminho/$email $caminho/1/;;
"Sinais")mv $caminho/$email $caminho/2/;;
"Potencia")mv $caminho/$email $caminho/4/;;
"Dispositivos")mv $caminho/$email $caminho/3/ ;;
"Energia")mv $caminho/$email $caminho/5/;;
"Engenharia")mv $caminho/$email $caminho/6/;;
esac





  


2. MELHOR RESPOSTA

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 17/05/2012 - 20:10h

Nos casos em que passei por isso era tudo relacionado a paths, pois no script vc pode ter algum arquivo em seu diretório corrente e quando vc insere no crontab ele não identificará. A sua variável NUM=`cat arqtemp2`, vc poderia inserir o caminho completo, por exemplo:
 NUM=`cat /caminho/da/pasta/arqtemp2`  
.
Faça isso para todas as suas variáveis que contém nome de arquivos, sempre deixe seus scripts desta forma, facilita bastante até para quem der suporte no mesmo.

3. Re: Problema ao chamar um Shell Script pelo Incontrab [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 17/05/2012 - 20:20h

Valew cara era exatamente esse o problema =p


4. Re: Problema ao chamar um Shell Script pelo Incontrab [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 17/05/2012 - 20:21h

Leia: http://www.vivaolinux.com.br/artigo/Incron-supervisionando-sistemas-de-arquivos/?pagina=1

caso não resolva, veja a questão das permissões no script e em qual incrontab foi criada a entrada,se foi na do root ou na do usuário que usa.

Veja a questão do do PATH também, seu script pode está em PATH diferente do que você recebe assim que loga.