系统维护篇
引:企业实战中必备的
Shell
脚本合集,针对:系统维护、线上业务、数据库、DevOps等多个场景的整理汇总。
服务器日常巡检脚本
使用场景:针对
Linux
服务器每日巡检收集监控数据,如:CPU
、内存、硬盘、网络、登录、软件等一系列信息企业级Linux日常自动巡检脚本:戳我~
下线登录用户
使用场景:针对
Linux
服务器多用户的管理维护,让运维管理员更加方便地一键强制下线其他在线用户一键强制下线用户脚本:戳我~
企业级Linux日常自动抓取服务器巡检、登录、执行命令记录+备份脚本
使用场景:针对
Linux
服务器上系统的巡检日志、用户登录成功/失败记录、执行命令记录记录到日志文件
自动抓取脚本: 戳我~
终端对话&广播消息
场景:针对多个用户登录服务器时,管理员广播消息或用户之间对话时的场景
教程:终端对话&广播消息教程
批量查询IP归属地+手机号归属地信息
场景:业务中需要排查某些IP、手机号归属地信息,甚至有些场景是批量的,浏览器直接批量copy查询的话某些网站还收费,所以写了个脚本,无需进入Windows系统打开浏览器查询,直接再Linux系统内执行脚本批量输入查询即可~
批量自动查询脚本:戳我~
Linux开机后自动执行命令或脚本
一键自动格式化输出SQL+Json语句脚本工具
场景:在Linux系统内通过一些命令工具对未格式化输出的数据进行格式化处理:
SQL、Json
一键自动格式化输出SQL+Json语句脚本工具:戳我~
线上业务篇
运维自动抓包
使用场景:基于
tcpdump
命令写的抓包脚本工具,一键抓取自定义协议、端口、进、出的数据包运维自动抓包脚本:戳我~
运维线上业务版本自动回退
针对线上业务出现问题或
Bug
,导致业务不稳定等情况,需要紧急回退上个或上上个版本,业务环境为:Docker
运维线上业务版本自动回退脚本:戳我~
自动导出Java堆栈错误日志
使用场景:针对于线上
Docker
业务容器启动失败,快速导出业务容器的Java
堆栈日志,帮助开发快速定位、解决问题。运维自动导出业务容器Java堆栈错误日志脚本:戳我~
Docker指定时间段一键过滤容器运行时日志
使用场景:针对容器日志过多时,过滤某个时间、时间段的日志
Docker指定时间段一键过滤容器运行时日志脚本:戳我~
CPU/内存达到阈值重启服务
使用场景:当某个服务经常性占用资源越来越高或偶尔飙高,判断cpu或内存有一项达到90时重启服务并发送钉钉告警,两次判断间隔:10s、20s
监控脚本:戳我~
定时检查服务运行状态并自动恢复宕机服务
使用场景1:服务宕机触发钉钉告警:不自动恢复,针对线上业务(排错)
使用场景2:服务宕机触发钉钉告警:自动恢复,针对测试业务(快速恢复)监控脚本:戳我~
一键列出所有容器IP地址脚本
使用场景:在服务器带宽被占用,但不好定位是哪个容器时,通过用此脚本来快速过滤容器名,以便解决问题
一键列出所有容器IP地址脚本:戳我~
统计Nginx请求成功率等信息脚本
使用场景:统计Nginx的访问信息,如请求成功/失败率、当日PV、请求频繁URL/IP/客户端IP的TOP10
统计脚本:戳我~
数据库篇
MySQL
备份库
全备与增备
使用场景:针对数据库的全量和增量备份(
mysqldump
)全备+增备脚本:戳我~
忽略表备份
使用场景:针对某个数据库的全备,把一些不想备份的表给忽略掉,同步数据时被忽略的表数据则不会更新
忽略表备份脚本:戳我~
备份表
一键自动备份表数据
使用场景:针对数据库的单个表备份,一键快速备份表(
mysqldump
)一键自动备份表数据脚本:戳我
一键自动恢复表数据
使用场景:针对数据库的单个表恢复,一键快速恢复表(
mysql
)一键自动恢复表数据脚本:戳我
运维定时刷入SQL
使用场景:有些时候,运维需要单独执行某些
SQL
语句,还得是低峰期,为了不半夜爬起来工作,所以就写了个定时自动执行的脚本定时刷入
SQL
脚本:戳我~
生产数据自动化同步到预生产
使用场景:基于昨晚的全备,在预生产服务器添加定时执行此脚本,重置数据库、刷入昨晚的全备
生产数据自动化同步到预生产脚本:戳我~
Binlog2sql
实现非主从关系实现数据的【实时同步+恢复误删+数据追踪】
数据同步
使用场景:拉取binlog,实时同步到其它数据库实例,达到非主从关系同步的效果
案例参见:数据同步
数据恢复
使用场景:误删数据,主要做紧急恢复
案例参见:数据恢复
数据追踪
使用场景:数据追踪,用来追踪执行详情,如时间/等其他记录
案例参见:数据追踪
MongoDB
数据备份&恢复
自动备份
自动备份脚本:戳我~
自动恢复
自动恢复脚本:戳我~
慢日志开启&备份
Redis
Redis自动保存执行记录脚本
使用场景:将
Redis
的操作记录实时写入到日志文件并保存(日志按天创建),包含命令行、第三方工具执行的增删改查操作都会记录。
自动保存执行记录脚本:戳我~
Redis一键备份与恢复脚本
使用场景:自动备份
Redis
数据,并在业务中一键快速恢复Redis
数据,提高工作效率!
Redis一键备份与恢复脚本:戳我~
DevOps篇
Harbor
使用场景:Harbor私有仓库运行一段时间后,仓库中存有大量镜像,会占用太多的存储空间;直接通过Harbor界面删除相关镜像,并不会自动删除存储中的文件和镜像,需要停止Harbor服务,执行垃圾回收命令,进行存储空间清理和回收
清理步骤:
1、web控制台删除无用的镜像构建记录或存储库;
2、执行自动清理脚本即可;
自动清理Harbor
无用镜像脚本:戳我~
万能工具箱
脚本获取地址参见Shell万能工具箱脚本
说明
持续更新~
整合业务中常用的脚本并分类触发,所有功能均基于此文档内的外链脚本
使用步骤
1.
shell_tools.sh
存放到/root/scripts/
2.将所需功能的脚本逐个新建到/root/scripts/shell_tools/
3.通过运行/root/scripts/shell_tools.sh
来调用/root/scripts/shell_tools/
不同脚本,以实现不同功能
PS:部分功能报错说明:部分不可直接使用的功能需要对应配置环境,参考对应功能的文档配置即可