ssh подключается всегда к сессии tmux

Я работаю с ноутбука, который подключается к офису через VPN. Сессии рвутся при перезагрузке ноутбука, при истечении сессии VPN или при перебоях с домашним интернетом. Иногда бывает неудобно, если до разрыва соединения у меня открыто несколько сессий (например, отображаются логи сервера, страница на которой редактирую конфиги, и т.п.).

Я настроил, чтобы все сессии с домашнего компьютера на рабочий заворачивались в tmux, а если есть незавершенные сессии, то я подключался к ним. Для этого я добавляю на рабочем компьютере в ~/.bashrc следующие строки:

NS=$((`tmux list-session | sort -nr | head -n 1 | grep -o "[0-9]*" | head -n 1`+1))
if [[ -n "$PS1" ]] && [[ -z "$TMUX" ]] && [[ -n "$SSH_CONNECTION" ]]; then

        US=`tmux list-session | grep -v "(attached)" | head -n 1 | grep -o "ssh_tmux[0-9]*"`
        if [[ -n "$US" ]]; then
                tmux attach-session -t $US
        else
                tmux attach-session -t ssh_tmux$NS || tmux new-session -s ssh_tmux$NS
        fi
        exit
fi

tmux удобней использовать, если руки привыкли к клавишным сокращениям, поэтому к ним надо потихоньку привыкать. Все комбинации начинаются на Ctrl-b. Вот один из многочисленных справочников https://tmuxcheatsheet.com/

Добавить комментарий