SpringBoot的linux运维项目——OpTo(operation tool)

本文介绍了作者开发的OpTo项目,用于自动化连接Linux服务器执行shell命令,通过读取Excel获取服务器信息,提供查询命中服务器文件和详细日志的接口。项目旨在提高工作效率,新年计划包括功能扩展和优化。

一.为什么做

哲学的三大问题,“我是谁”“我从哪里来”“要到哪里去”,当我们在日常工作中也常常遇到这样的难题,总是在手忙脚乱中,感觉在重复很多无效的工作内容,不断会出现“我是谁”的疑惑,“为什么做”,当代码出现两次以上就要考虑封装,当某个有规律的操作出现多次就要考虑是否可以用工具进行优化工作,这就是这个项目产生的原因

二.怎么做

之前写过博客对流程进行过简单介绍虽然比较粗糙但是框架已经基本完成,基于jsch链接LInux执行shell语句,根据执行后的返回进行数据过滤获取有用数据后返回,目前提供了两个可用接口

1.查询命中服务器文件接口:上送接口信息后返回命中服务器、命中服务器文件地址

2.查询服务器文件详细:基于名字服务器文件接口返回值可直接复制访问,查询详细日志信息

三.具体流程

1.一份保存所有服务器信息的excel:

code 工程编码

ip 服务器ip

name工程中文名 

fragmentation 分片信息 a1、a2

rnvironmenType 环境类型 jc、gn

linuxType 服务器类型 yw、wg

2.linux日志地址

因为在实际服务器中由于日志会进行压缩,在配置文件中 

logFileDefaultPath:默认请求日志文件地址
logFilePrix: 请求地址前缀

有需要使用的朋友目前需要自行手动修改地址来达到查询的目的

3.启动项目开始访问

api访问默认地址:

http://localhost:8081/swagger-ui.html

4.请求查询服务器命中接口

目前筛选条件存在一定问题,暂时需要必输,如果不需要的同学可以自行注释相关代码

5.请求服务器文件详细接口:

请求查询服务器命中接口 复制成功返回信息 到该接口直接请求

接口返回数据库可直接在返回框浏览,也可以直接下载本地打开浏览

四.快速分享

项目基于jsch技术访问linux服务器,

用户请求

     |

    OpTo  -> 查询缓存是否存在   -> 开启线程池 -> 获取线程返回 -> 数据过滤 -> 返回

                              |   |

                        查询excel是否存在

1.用户请求抵达OpTo, OpTo查询缓存中excel数据是否存在,因为是单服务工具不涉及分布式缓存,所以使用简单HashMap作为缓冲锁即可,由于要考虑excel文件被修改的请求,目前根据excel文件地址和最后修改时间作为key来进行缓存;

2.如果缓存不存在,重新读取excel,使用普通的excel读取poi工具即可,获取excel数据把第一行作为key,后续每行装填至每个map对象进行返回;

3.开启线程池,简单的线程池,简单的开启,简单的关闭即可,可能后期会根据服务器的数量动态设置线程池最大线程数量,保证线程效率;

4.直接继承thread的方式没有返回值,使用实现Callable可以获取线程返回数据,然后我又做了一个类似缓存去的效果进行返回数据处理,如果使用过NIO的同学应该清楚,多线程异步的io读取也是基于相同技术完成的,通道、缓存区,nio在执行前会先对文件进行分割,分割完成后开启多线程执行,每个线程执行完数据会存在缓存区中,最后所有执行完成后,统一数据会在缓存区拼装,因为我不需要对文件进行分割,只需要数据拼装、过滤即可。

5.数据返回,通过swagger进行展示,并且可以进行数据文件下载操作

五.新年计划

1.OpTo目前还是一个简易的工具,目前来说无法定制化读取linux,需要进一步优化代码,可以读取从excel文件关于liunx账号、密码信息

2.代码内部,关于shell脚本内容,需要再进行抽离,并且希望可以在读取中可以执行自定义的shell脚本功能

3.因为目前OpTo是个单机项目,后续优化可以支持excel读取后持久化数据库的功能

4.后续增加前端端分离版本

5.增加微信小程序

六. 总结

今天是2023年的最后一天,2023年反反复复的认知到自己的不足,但是永远欠缺的坚持的毅力,从入行到现在,多次说服自己做一个项目进行总结归纳,但是一致没有成功,可能是预想的太大了,刚开始就给自己劝退了,所以这个项目会从一个小的工具类开始做起,慢慢扩展,从缓存、多线程、io开始一步一步的丰满起来,把之前的项目经验重新拾取,新的一年希望自己可以能有更多时间用来学习让自己更加的充实起来,希望2024年可以迎来更好的自己,无论这个行业环境如何,不断学习,养成学习的习惯才是自己核心竞争力,不断学习、不断成长,希望新的一年,自己可以把 OpTO继续优化,让她成为一个方便、快捷的使用工具项目,在不起眼的地方发挥着她的作用。

地址链接,由于目前OpTo还未迁移到新的git地址所以目前还未改名

springboot-jsch: SpringBoot集成JSch,动态链接Linux服务器上传文件、执行Shell相关命令

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值