# Linux-Tools **Repository Path**: jurnlee/linux-tools ## Basic Information - **Project Name**: Linux-Tools - **Description**: Linux系统常用运维脚本集合面板 - **Primary Language**: Shell - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-06-13 - **Last Updated**: 2024-06-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: 运维, ops ## README # Linux-Tools ![](docs/main.png) ## 介绍 Linux系统常用运维脚本集合 作为非运维岗开发同学,工作中时不时也会接触到Linux运维,但由于机会不多,特别是在当今devops流行的中大厂里,大部分入行不久的开发同学除了自己有购买运服务器或玩Nas时会在安装系统后时不时部署更新下Docker应用,对Linux的熟练程度除了一些常用的无关发行版本的命令外,其他的隔一两个月就忘的差不多了,特别是自己的Nas是debian,公司的服务器有centos,有Ubuntu,多系统运维时偶尔就会出现记忆混乱的场面。 所以急需一个运维面板,这时候有人就问了,那些开源的Linux运维面板不香么,比如宝塔、1Panel等等,香,确实香,我自己的Nas就用的是1Panel,但是公司的服务器、卖给客户的服务器有时候不适合装。 所以还是需要一个纯原生纯手工的shell脚本合集最好不过,还能方便扩展搭建自己的趁手工具。 PS. 鄙人还在开始学习shell脚本阶段便开始写和收集这个脚本工具,难免有些地方写得可能没有那么优雅,如有高见欢迎指正或提MR,感谢! 有些扩展脚本也是从各类大佬开源的仓库那里copy而来,原脚本头部保留来源于作者,这里便不一一列举了。 ## 使用方式 直接使用 `./linux-tools.sh` 安装脚本 //TODO ## 项目说明 为了方便,可以运行脚本,将自身推送到远程服务器。(运维、检测、应用) 为方便扩展,将脚本一级菜单二级菜单,主要涉及`网络`,`系统`,`软件管理`,`硬件`,`维护`几大方面 ### 开发遵循以下规约 #### 扩展 1、菜单扩展:遵循一级菜单分类,二级直接为具体功能(避免过于复杂的交互) 2、文件扩展:放置在plugins目录下,命名规则也尽量为`一级菜单-具体功能名.sh`,可引入`common.sh`的公共脚本,或自定义的其他公共脚本 ```shell # shellcheck source=/dev/null source ./common.sh ``` > 如在网络菜单下增加网络检测功能 > 1) 在`plugins`目录下增加脚本文件`net-check.sh` > 2) 在`linux-tools.sh`菜单中增加相应选项,调用写`./plugins/net-check.sh` #### 不同发行版系统适配 `common.sh`中提供`execute_base_os`函数用于自动识别系统发行版, 在菜单添加了一项功能函数后,只需要在函数名后追加`-$(SYSTEM_OS)`,即可适配不同发行版系统; > 如要在网络菜单下增加demo功能, > 1) 在`plugins`目录下增加`net-demo.sh` > 2) 在`net-demo.sh`脚本中定义不同系统发行版的函数 `demo-centos` `demo-ubuntu`,脚本文件最底部执行直接写 `execute_base_os demo ["direct"] param1 param2...`(支持带参数) > 3) 在`linux-tools.sh`菜单中增加相应选项,调用直接写`./plugins/net-demo.sh` ## 项目功能与计划 一级菜单 | 功能 | ubuntu | debian | centos | fedora | arch | alpine | ---- | ---- | ------ | ------ | ------ | ------ | ---- | ------ | | 网络 | 网络配置 | √ | √ | √ | | | | | | 网络测速 | | | | | | | | 系统 | 查看用户与组 | | | | | | | | | 添加用户与组 | | | | | | | | | 移除用户与组 | | | | | | | | | 设置时间 | | | | | | | | | 设置NTP服务器 | | | | | | | | 软件管理 | 更换国内源 | √ | √ | √ | - | √ | √ | | | 安装软件 | | | | | | | | | 卸载软件 | | | | | | | | | 查找软件 | | | | | | | | | 开启自启列表 | | | | | | | | | 增加开启自启 | | | | | | | | | 移除开启自启 | | | | | | | | | 定时任务列表 | | | | | | | | | 增加定时任务 | | | | | | | | | 移除定时任务 | | | | | | | | 应用部署 | Docker安装 | | | | | | | | | k3s安装 | | | | | | | | 硬盘 | 查看硬盘信息 | | | | | | | | | 挂载硬盘或分区 | | | | | | | | | 分区扩容 | | | | | | | | | 硬盘坏道检测 | | | | | | | | | 硬盘测速 | | | | | | | | 硬件 | 网卡驱动安装 | | | | | | | | | 硬件列表 | | | | | | | | 维护 | 发送到服务器 | √ | √ | √ | √ | √ | √ | | | 升级脚本 | √ | √ | √ | √ | √ | √ | | | 安装到服务器 | | | | | | | ## 参与贡献 1. Fork 本仓库 2. 新功能新建 f/xxx 分支,或修复已知问题直接使用dev分支 3. 提交代码 4. 新建 Pull Request