Re: comportamento script differente da bash a cron
In data mercoledì 6 luglio 2011 19:15:51, xserver80 ha scritto:
> Ciao a tutta la lista,
>
> vi scrivo per un problema con uno script bash: ho bisogno di
> connettere un server remoto con ssh inverso su un altro server.
>
> Ho realizzato il seguente scriptino, integrando expect per l’invio
> della password:
> --------------------
> #!/bin/bash
> # Va eseguito tramite CRONTAB ogni 30 minuti
> # es. crontab: 0,30 * * * * /etc/script /sshInverso.sh
> echo "controllo se e' attivo il processo di ssh inverso."
> if [ -n "`ps ax | grep 192.168.1.2 | grep ssh`" ]
> then
> echo "processo attivo, non eseguo nulla."
> exit 0
> else
> echo "processo non attivo, do il comando per attivarlo"
> expect -c "set timeout 5;\
> spawn ssh -R 9000:127.0.0.1:22 -p 22 -l root
> 192.168.1.2 -f -N ;\
> match_max 10000;\
> expect *assword:*;\
> send – mia_password\r;\
> interact;"
> fi
> echo "esco"
> exit 0
> -----------------------
>
> Il problema è che se eseguo lo script manualmente da bash funziona
> correttamente, mentre da crontab non conclude l’esecuzione
> correttamente e quindi non si crea il tunnel.
> In particolare durante l’esecuzione “in cron” i parametri passati ad
> expert non vengono eseguiti.
> Non riesco a capire perché tramite cron non esegue correttamente questi
> comandi…
>
> Avete qualche idea?
>
> Grazie,
> Federico
mi viene il sospetto che sia perché se lo lanci manualmente sei in una shell,
e quindi hai tutti i dati della shell di supporto... se lo lanci con cron
no...
prova a lanciarlo con il comando sh in testa...
crontab: 0,30 * * * * "/usr/bin/bash /etc/script/sshInverso.sh"
(non sono sicuro se ci vogliono o meno le doppie virgolette per passare i
parametri allo script.
Byez
--
Gollum 1
Tessssssoro, dov'é il mio tesssssssoro...
Reply to: