Я пытаюсь запустить скрипт при запуске на компьютере Debian Jessie, помимо прочего он создает обратный туннель SSH.
Дело в том, что я поставил этот скрипт в if-up
и либо в rc.local
для запуска. Все остальные задания работают нормально, но когда ему нужно создать туннель SSH, он либо не может его создать, либо зависает при загрузке сообщения о выполнении задания.
Я был бы более ясен, но дело в том, что если я /etc/rc.local
после загрузки машины, туннель будет работать идеально.
Я должен добавить, что машина, для которой создан туннель, - это Raspberry Pi, и иногда я не могу выполнить ssh, пока не произнесу эхо-запрос. Я управлял сценарием, чтобы сделать это, но безуспешно при загрузке.
Как видите, я совсем не опытный, просто учусь.
редактировать: спасибо. Как я уже говорил, код работает отлично, если я запускаю его из консоли. Я даю ему полные разрешения (777) всем, на всякий случай и для тестирования. В скрипте разрешено выполнение, но только chmod +x, может быть, нужно что-то еще ... вот код Как я уже сказал, скрипт на удаленной машине запрашивает частные и публичные ip и помещает их в базу данных rpi, после чего он запускает обратное туннелирование (или нет). Запустите его из /etc/rc.local и скрипт сохранится в /usr. / местные / игры
#!/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 xx@xxxxxxxxx.xx -fN) -ne 0 ]]; do
ping -c3 xxxxxxxxx.xx
if ($? -eq 0) then
autossh -p xxxx -R 10101:localhost:22 xx@xxxxxxxxx.xx -fN;
else
ping -c3 xxxxxx.xxx
fi
done
else bash -x /etc/rc.local
fi
exit 0