Tmux 开启后自动SSH 连结多台指定机器

从Screen转用Tmux已经一段时间,由此篇“ Tmux教学+ Screen到Tmux的无痛转换 ”看来,已经使用2年以上了,没有觉得有什么特别差异.

但是最近Debian升级后,遇到一次Tmux版本不同造成无法attach (类似screen -r),于是将Tmux process砍掉重新启动,才发现机器太多,需要一边回想、一边猜、一边从~/.ssh /known_hosts捞,所以来研究如何让Tmux启动时,自动SSH连到所有机器的方法 ~

Tmux 开启后, 自动SSH 连结多台指定机器

此script 的写法可以知道除了执行ssh 外, 可以执行任何指令, 可在自行发挥使用~

注:参考自此篇: TMUX – The Terminal Multiplexer (Part 
2) | Hawk Host Blog

#!/bin/sh
tmux new-session -d -s TMUX_NAME

tmux new-window -t TMUX_NAME:0 -n 'SCREEN_NAME0' '/usr/bin/irssi'
tmux new-window -t TMUX_NAME:1 -n 'SCREEN_NAME1' 'ssh w1.example.com'
tmux new-window -t TMUX_NAME:2 -n 'SCREEN_NAME2' 'ssh w2.example.com'

tmux select-window -t TMUX_NAME:1
tmux -2 attach-session -t TMUX_NAME

范例

  • vim /usr/local/bin/tmux-ssh.sh # 下述英文字全大写的部份, 请自行换成自己想要取的名字
    #!/bin/bash
    tmux new-session -d -s sites
    
    tmux new-window -t sites:0 -n 'irc' '/usr/bin/irssi'
    tmux new-window -t sites:1 -n 'w1' 'ssh w1.example.com'
    tmux new-window -t sites:2 -n 'w2' 'ssh w2.example.com'
    
    tmux select-window -t sites:1
    tmux -2 attach-session -t sites

于ssh 登入机器后, 想要自动进​​入tmux attach 可以使用下述Script. (这个会询问tmux ssh auto attach [y/n])

  • vim .bashrc # 加入于档案最后面即可
    if [[ $SSH_CONNECTION !="" && $MY_SSH_CONNECTION !="yes" ]]; then
        while true; do
            echo -n "​​Do you want to attach to a tmux session? [y/n]"
            read yn
            case $yn in
                [Yy]* ) MY_SSH_CONNECTION="yes" tmux attach; break;;
                [Nn]* ) break;;
            * ) echo "Please answer y/n";;
            esac
        done
    fi

原文网站: Tsung Hao


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值