tmux.webp

Xshell_7_快速命令栏导入包.zip

我们可以使用 tmux 的客户端-服务器模型(client-server model)来创建一个定制的脚本来自动地构建开发环境、分割窗口并运行程序。

tmux-docker.sh

#!/bin/bash
tmux new-session -d -s ssh    # 后台新建一个session
tmux split-window -h          # 切割窗口(左右)
tmux split-window -v          # 切割窗口(上下)

tmux select-pane -t 0         # 选择0号窗口  # 发送命令
tmux send-keys "iptables -nvL DOCKER; docker ps -a" C-m

tmux select-pane -t 1
tmux send-keys "htop" C-m

tmux select-pane -t 2
tmux send-keys "docker exec -it  nginx-php bash" C-m
tmux send-keys "cd /var/www/html" C-m
tmux send-keys "php i.php" C-m

tmux select-pane -t 0
tmux send-keys "echo;echo;echo -e ':: 登录tmux窗口: tmux a -t ssh    后台保持:tmux: Ctrl+b-d    关闭: Ctrl+d'" C-m

tmux a -t ssh                # 登录tmux窗口
# tmux kill-session -t ssh   # 停止后台session
  • 如图 Xshell 快速命令栏添加一个快速命令,粘贴以上内容 使用 # 结尾
  • 然后点一下鼠标,就能自动开启 tmux 窗口和你想要的命令
  • tmuxhtop 需要提前安装 apt install tmux htop

我们在一个堡垒机上,运行tmux,然后分别向其他受控制机器,发送合适的命令

tmux select-pane -t 1  # 窗口编号按实际变化
tmux send-keys "ssh [email protected]" C-m
tmux send-keys "cd /root; ls -1a" C-m

为了快速命令通用,我们先使用 tmux a -t ssh 登陆之前已有 tmux 服务,检查 $? 返回值判断是否存在名称 ssh的旧session

#!/bin/bash
tmux a -t ssh
if [ $? == 1 ]; then
    tmux new-session -d -s ssh    # 后台新建一个session
    tmux split-window -h          # 切割窗口(左右)
    tmux split-window -v          # 切割窗口(上下)

    tmux select-pane -t 0         # 选择0号窗口  # 发送命令
    tmux send-keys "iptables -nvL DOCKER; docker ps -a" C-m
    tmux select-pane -t 1
    tmux send-keys "htop" C-m
    tmux select-pane -t 2
    tmux send-keys "docker exec -it  nginx-php bash" C-m
    tmux send-keys "cd /var/www/html" C-m
    tmux send-keys "php i.php" C-m

    tmux select-pane -t 0
    # tmux send-keys "echo;echo;echo -e ':: 登录tmux窗口: tmux a -t ssh    后台保持:tmux: Ctrl+b-d    关闭: Ctrl+d'" C-m
    tmux a -t ssh                # 登录tmux窗口
    # tmux kill-session -t ssh   # 停止后台session
fi # 

0 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注