全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 529|回复: 3
打印 上一主题 下一主题

使用tmux脚本和Xshell快速命令定制一键面板环境

[复制链接]
跳转到指定楼层
1#
发表于 2021-9-14 12:56:31 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 sRGB 于 2021-9-14 13:55 编辑



相关网址   262235.xyz/index.php/tag/Xshell/


我们可以使用 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         # 选择窗口  # 发送命令
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快速面板添加一个快速命令,粘贴以上内容 使用  #\r 结尾
然后点一下鼠标,就能自动开启 tmux 窗口和你想要的命令
tmux 和 htop  安装需要提前安装  apt install tmux htop




为了快速命令通用,我们先使用 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 " C-m
        tmux select-pane -t 1
        tmux send-keys "htop          " C-m
        tmux select-pane -t 2
        tmux send-keys "ss -lt4       " C-m
        tmux a -t ssh                # 登录tmux窗口   
        # tmux kill-session -t ssh   # 停止后台session
fi #\r


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

tmux select-pane -t 1  # 窗口编号按实际变化
tmux send-keys "ssh [email protected]" C-m
tmux send-keys "cd /root; ls -1a" C-m
4#
发表于 2021-9-14 13:54:44 | 只看该作者
技术贴顶一下
3#
 楼主| 发表于 2021-9-14 13:54:01 | 只看该作者
在一个堡垒机上,运行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 " C-m
        tmux select-pane -t 1
        tmux send-keys "htop          " C-m
        tmux select-pane -t 2
        tmux send-keys "ss -lt4       " C-m
        tmux a -t ssh                # 登录tmux窗口   
        # tmux kill-session -t ssh   # 停止后台session
fi #\r
2#
发表于 2021-9-14 13:03:37 | 只看该作者
挺有意思的,收藏了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-1-13 01:32 , Processed in 0.068391 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表