Estou tentando executar um script na inicialização de uma máquina Debian Jessie, entre outras coisas, cria um túnel reverso de SSH.
O problema é que coloquei este script em if-up
e em rc.local
para iniciar a partir de. Todos os outros trabalhos funcionam bem, mas quando é necessário criar o túnel SSH, ele não consegue criá-lo ou suspende a inicialização em uma tarefa que está executando a mensagem.
Eu ficaria mais claro, mas o problema é que, se eu executar /etc/rc.local
depois que a máquina inicializar, o túnel estará funcionando perfeitamente.
Eu tenho que acrescentar que a máquina para a qual o túnel é criado é um Raspberry Pi e às vezes eu não consigo ssh até fazer alguns pings. Eu gerenciei o script para fazer isso, mas não obtive sucesso na inicialização.
Como você pode ver, eu não sou experiente, apenas aprendendo.
edit: Obrigado.
Como eu estou dizendo antes, o código funciona perfeito se eu iniciá-lo a partir do console.
Eu dou permissões completas (777) para todos, apenas no caso e para testes. O script tem a execução ativada, mas apenas um chmod + x, talvez algo mais seja necessário ...
aqui está o código. Como eu disse o script na máquina remota pede ip's privados e públicos e os coloca em um banco de dados rpi, depois ele inicia um tunelamento reverso (ou não) Lança ele de /etc/rc.local e o script é armazenado em / usr / local / games
#!/bin/bash
wget -q --tries=10 --timeout=20 --spider http://google.com
if [[ $? -eq 0 ]]; then
publica=$(curl http://ipecho.net/plain)
sleep 0.25s
privada1= while IFS=$': \t' read -a line ;do
[ -z "${line%inet}" ] && ip=${line[${#line[1]}>4?1:2]} &&
[ "${ip#127.0.0.1}" ] && privada1=$ip
done< <(LANG=C /sbin/ifconfig)
fecha=$(date +%F_%X)
sleep 0.15
nombre=$(hostname)
sleep 0.15s
curl --data "nombre=$nombre&fecha=$fecha&publica=$publica&privada1=$privada1&privada2=$privada2&privada3=$privada3&privada4=$privada4&press=envia" http://www.xxxxxxxxx.xx/xxx.php
while [[ $(autossh -p xxxx -R 10101:localhost:22 [email protected] -fN) -ne 0 ]]; do
ping -c3 xxxxxxxxx.xx
if ($? -eq 0) then
autossh -p xxxx -R 10101:localhost:22 [email protected] -fN;
else
ping -c3 xxxxxx.xxx
fi
done
else bash -x /etc/rc.local
fi
exit 0