Эта функция может работать, но если псевдоним Томаса работает, я думаю, что это лучшее решение.
autossh () {
publicip="11.11.11.11"
privateip="10.10.10.100"
proxyhost="10.10.10.10"
proxyport="9001"
ssh -o ConnectTimeout=10 $1@$privateip 2> /dev/null && exit 0
if [ $? -ge 1 ]; then
ssh -o ConnectTimeout=10 $1@$publicip -o "ProxyCommand=nc -X connect -x $proxyhost:$proxyport %h %p" 2> /dev/null && exit 0
if [ $? -ge 1 ]; then
ssh -o ConnectTimeout=10 $1@$publicip 2> /dev/null && exit 0
if [ $? -ge 1 ]; then
echo "I think your node is down"
fi
fi
fi
}
Вы можете использовать команду screen для сохранения сеансов терминала, к которым можно будет получить доступ позже. Это избавляет вас от необходимости убивать процессы, которые могут быть подключены к сеансу терминала. Итак, один из примеров того, как это полезно, — это если вы собираетесь начать передачу большого объема данных. Вы можете начать сеанс экрана, начать передачу данных, вернуться домой и вернуться по ssh к своему рабочему компьютеру, а также получить доступ к сеансу экрана без прерывания передачи
.Для установки:
sudo apt install screen
для Ubuntu или варианта Ubuntu
yum install screen
Redhat или вариант Redhat
затем вы можете запустить
screen -S <screen name>
для создания нового сеанса экрана
screen -ls
список сеансов экрана
screen -r <screen name>
прикрепить к определенному экрану.
tmux постепенно заменяет команду screen, так что я бы порекомендовал изучить и это.