Уничтожьте туннель SSH после X минут, даже если он все еще используется?

Я думаю, что iostat является основным инструментом, который Вы хотите.

3
задан 23 July 2009 в 12:06
4 ответа

Вот более чистый способ сделать его, который был предложен прежде:

ssh -f -N -L 14880:internalserver:3306 gateway.example.com &
PIDSSH=$!
( sleep 600 ; echo "Timeout." ; kill $PIDSSH ) &
PIDSLEEP=$!
wait $PIDSSH
kill $PIDSLEEP && echo "Session ended before timeout"
wait

Однако Вы не получаете код ошибки от ssh, но это могло быть расположено.

2
ответ дан 3 December 2019 в 05:21

Ожидать пакет имеет команду тайм-аута как один из ее примеров. Вы могли перенести свой целый сценарий с вызовом к этому.

Или что-то как:

ssh -f -N -L 14880:internalserver:3306 gateway.example.com &
PID=$!
nohup "sleep 600; kill $PID" &

2
ответ дан 3 December 2019 в 05:21

Посмотрите на это:

ssh -f -L 14880:internalserver:3306 gateway.example.com sleep 3m

Это установит туннель и позволит Вам соединиться через 3 минуты. Если Вы соединитесь, то это будет доступно до него неактивный becames. Это не уничтожит рабочий процесс резервного копирования однако (я надеюсь, что это - то, что Вы хотите).

2
ответ дан 3 December 2019 в 05:21
  • 1
    Близко, но I' m не взволнованный по поводу ничего соединяющегося за 3 минуты. I' d очень скорее имеют способ уничтожить туннель после X раз. –  Rory 23 July 2009 в 17:13

Другой способ сделать это установил бы значение неактивного тайм-аута на Вашей сессии. Это может быть сделано на сервере в sshd_config со значением "IdleTimeout", или пользователем в authorized_keys файле как "idle-timeout=6m... ключ...". Или часы. Или секунды. Разделите 8.2.7 в "SSSH oreilly Безопасный Shell" книга. После упомянутой суммы неактивности (никакой вход), будут уничтожены Ваши процессы. То, как чистый, который является, зависит от того, как хорошо они отвечают на, понукает :)

1
ответ дан 3 December 2019 в 05:21

Теги

Похожие вопросы