comportamento script differente da bash a cron
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
Reply to: