news 2026/9/1 9:40:18

1Panel 批量操作:一条命令库,下发到整组主机

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
1Panel 批量操作:一条命令库,下发到整组主机

1Panel 批量操作:一条命令库,下发到整组主机

【免费下载链接】1Panel🔥 1Panel is a modern, open-source Linux server management panel and a lightweight AI management platform.项目地址: https://gitcode.com/GitHub_Trending/1p/1Panel

凌晨两点,你第 9 次在终端里敲下同一条重启命令。命令没变,变的是机器——6 台生产机、同一个发版动作、同一批日志清理,你的手速没问题,是工具把"一批"当成了"六台单独做"。1Panel 的批量操作把这件事反过来:先把主机归拢成组,再给命令建库,多服务器管理就从逐台登录,变成"选组、选命令、确认"三步。

把散落的主机归拢到同一个组

主机入口在 frontend/src/views/terminal/host/index.vue:点"添加主机"逐台录入地址与凭据,保存后列表顶部就是分组筛选框。真正省事的是改组动作——每行主机的分组列可以内联切换,一台机器从"生产"挪到"预发",不用重建,改个下拉就行。

组的增删改查逻辑在 core/app/service/group.go 里,两处细节值得留意:建组时先查重名,重了直接拒绝;删组时如果组里还挂着命令,会直接报错拒删,只有把组内命令迁到默认组之后才放行。误点删除,命令不会变孤儿。

把要重复敲的命令写成一次性的资产

主机进组之后,省时间的下一环是命令。命令维护页 frontend/src/views/terminal/command/index.vue 支持创建"名称 + 命令体",并挂到任意组下。这是多服务器管理的分水岭:命令不再散落在聊天记录和你的记忆里,而是变成可检索、可复用的条目。后端 core/app/service/command.go 在创建时做名称查重,更新时允许改命令体、换组——发现命令写错了,改库这一条即可,不用回头逐台纠正。

为什么命令库要按组挂

命令攒到两位数,平铺列表肉眼找已经很慢了。SearchForTree方法把命令列表和组列表拼成两层树:第一层是组名,第二层是组内命令,空组自动丢弃,界面上看到的就是"组 → 命令"的结构化视图。

三步把一条命令下发到整组主机

① 进主机页,顶部分组筛选框选定目标组,确认这一批要碰哪几台机器。 ② 切到命令管理页,从分组树里挑好命令,点击执行并勾选组内主机。 ③ 回看每台机器的执行结果——成功、失败分开列,失败的只需单独补跑,不用整批重来。

分组树的核心逻辑就一个循环:

for _, group := range groups { data.Label = group.Name for _, cmd := range cmdList { if cmd.GroupID == group.ID { data.Children = append(data.Children, dto.CommandTree{Label: cmd.Name, Value: cmd.Command}) } } if len(data.Children) != 0 { lists = append(lists, data) } }

先按组开坑,再把命令填进对应的坑,空组直接跳过——这就是"选命令像翻目录"的由来。

命令库本身也可以导出

换机重建命令库是最容易让人放弃维护这件事的原因。core/app/service/command.go 里的Export方法会把全部命令写成带时间戳的 CSV,落在安装目录下的1panel/tmp/export/commands,命令页上有现成的导入入口。老机器上用了几个月的命令库,十分钟就能在新实例复刻一遍。下次需要批量发命令时,先建组——它比逐台登录快一个量级。

【免费下载链接】1Panel🔥 1Panel is a modern, open-source Linux server management panel and a lightweight AI management platform.项目地址: https://gitcode.com/GitHub_Trending/1p/1Panel

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/1 9:37:58

破解无限免费误区:云工作流自动化与成本控制实践

最近“Google Flow Unlimited Credits FREE”这个关键词频繁出现在开发者的搜索记录里。如果你也是被“免费”“无限额度”这两个词吸引过来的,建议先在动手之前想清楚一个问题:Google 官方目前并没有一款以“Google Flow”为正式名称、以“无限免费额度…

作者头像 李华
网站建设 2026/9/1 9:37:30

腾讯音乐移动客户端秋招笔试复盘:考点、编程题与时间分配策略

今年秋招投递腾讯音乐移动客户端开发岗的时候,我其实心里挺没底的。客户端开发在很多人印象里就是“刷题少、重项目”,但真到了笔试环节才发现,它既考算法功底,也考操作系统和网络基础,甚至还会用音乐业务场景来包装题…

作者头像 李华
网站建设 2026/9/1 9:36:38

贝壳找房春招C++笔试卷2复盘:八股、算法与工程思维全解析

2023年贝壳找房春招C工程师笔试卷2,这份卷子我印象很深。倒不是因为它难到让人崩溃,而是它的考察面特别杂:C八股、数据结构、算法、设计模式、多线程、甚至一些工程化习惯全部揉在一起,题量还不小。这种“广而不浅”的风格&#x…

作者头像 李华
网站建设 2026/9/1 9:36:13

UrbanMind AI:融合遥感与POI数据的城市空间智能决策平台

我们在做城市级AI应用时,最常遇到的不是模型效果不行,而是“数据从哪来、空间怎么算、结果怎么解释”这三件事没有打通。本文要聊的 UrbanMind AI,本质上就是一个把遥感影像、开放街区数据、POI、人口分布等多种空间数据统一起来,…

作者头像 李华
网站建设 2026/9/1 9:36:06

大模型Agent开发进阶:上下文引擎设计与实战

现在聊大模型应用开发,最不缺的可能是 Agent 框架。开源社区里有大量 Agent 项目,平台产品也把编排能力做得越来越完善,只要愿意折腾,一个能跑通的 Agent Demo 并不难搭建。但把 Agent 从玩具推向真实业务时,很多人会卡…

作者头像 李华