Назад | Перейти на главную страницу

bash скрипт с постоянным ssh-соединением

Я использую сценарий bash, который запускает

/usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 serveradmin@34.324.234.23

Однако, когда я запускаю сценарий bash, он ждет ... Я вижу, что соединение устанавливается, но сценарий не завершается ... это похоже на ожидание завершения процесса SSH, потому что, когда я вручную его убиваю, сценарий bash завершается как хорошо.

Есть идеи, как это решить?

ОБНОВИТЬ: Я записал этот скрипт ... и процесс cron превращается в зомби ... настоящие скрипты работают нормально, извините за это, с ps -auxf я получаю:

root       597  0.0  0.7   2372   912 ?        Ss   Jul12   0:00 cron
root      2595  0.0  0.8   2552  1064 ?        S    02:09   0:00  \_ CRON
1001      2597  0.0  0.0      0     0 ?        Zs   02:09   0:00      \_ [sh] <defunct>
1001      2603  0.0  0.0      0     0 ?        Z    02:09   0:00      \_ [cron] <defunct>

и когда я убиваю ssh, несуществующие исчезают .. почему они перестают существовать?

Похоже, вы пытаетесь заново реализовать автосш (apt-get install autossh).

Создайте пару ключей RSA без ключевой фразы, установите открытый ключ на serveradmin@34.324.234.23 и попробуйте:

autossh -f -N -L8888:127.0.0.1:3306 serveradmin@34.324.234.23

Отсоединить ssh процесс с вашего терминала:

  1. Отправить в фон

    /usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 serveradmin@$34.324.234.23 &

  2. Нет, это

    nohup /usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 serveradmin@$34.324.234.23

Удалить $.

workstation:~$ /usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 server.host.com
DSA host key for IP address '205.205.219.5' not in list of known hosts.
workstation:~$ ps x | grep '\-f'
16170 ?        S      0:00 /usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 server.host.com

Это идет прямо на задний план, когда вы меняете детали. У меня есть пара ключей однако на моем тестовом сервере.

У вас уже есть что-то, что слушает 8888 на вашем локальном сервере? У вас уже есть экземпляр в фоновом режиме?