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

Автоматически переподключать сеанс ssh для удаленного файла

Мне нужно решение, которое в основном отслеживает файл журнала из удаленного ящика ...

  1. Работает на Mac
  2. Восстанавливает себя всякий раз, когда у меня есть Интернет. (Я часто закрываю и открываю крышку своего MacBook)

Это может быть сценарий, который я продолжаю запускать в терминале ... Мне просто нужно, чтобы он всегда переподключался при переключении сетей и т. Д.

Некоторые вещи, которые я пробовал

Я написал сценарий, который отслеживает выполнение команды ssh, и решил, что могу перезапустить ее всякий раз, когда процесс умирает ... Проблема в том, что ssh, похоже, на самом деле не умирает в том смысле, что процесс действительно завершается ... он попадает в некоторые состояние, при котором он больше не следует из удаленного файла.

while [ 1 ]; do
    # timestamp
    ts=`date +%T`

    f=log.txt
    TEST=`ps aux | grep "[s]sh -f ubuntu@production.myserver.com tail -f /var/log/myapp/$f"`
    if [ "$TEST" != "" ]; then
        echo "$ts it's running"
    else
         echo "$ts (Re)Starting $f"
         ssh -f ubuntu@production.myserver.com "tail -f /var/log/myapp/$f" >> ./logs/$f
    fi

  sleep 15
done

Я думал, что это решение, но мне не удалось его скомпилировать: http://www.harding.motd.ca/autossh/