运维企业实战Shell脚本合集+万能工具箱

2023-11-16

文章目录

系统维护篇

引:企业实战中必备的Shell脚本合集,针对:系统维护、线上业务、数据库、DevOps等多个场景的整理汇总。

服务器日常巡检脚本

使用场景:针对Linux服务器每日巡检收集监控数据,如:CPU、内存、硬盘、网络、登录、软件等一系列信息

企业级Linux日常自动巡检脚本:戳我~

下线登录用户

使用场景:针对Linux服务器多用户的管理维护,让运维管理员更加方便地一键强制下线其他在线用户

一键强制下线用户脚本:戳我~

企业级Linux日常自动抓取服务器巡检、登录、执行命令记录+备份脚本

使用场景:针对Linux服务器上系统的巡检日志、用户登录成功/失败记录、执行命令记录记录到日志文件
自动抓取脚本: 戳我~

终端对话&广播消息

场景:针对多个用户登录服务器时,管理员广播消息或用户之间对话时的场景
教程:终端对话&广播消息教程

批量查询IP归属地+手机号归属地信息

场景:业务中需要排查某些IP、手机号归属地信息,甚至有些场景是批量的,浏览器直接批量copy查询的话某些网站还收费,所以写了个脚本,无需进入Windows系统打开浏览器查询,直接再Linux系统内执行脚本批量输入查询即可~
批量自动查询脚本:戳我~

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

数据备份&恢复

部署参考:Docker搭建Mongdb Replica Set高可用集群+自动备份与恢复脚本

自动备份

自动备份脚本:戳我~

自动恢复

自动恢复脚本:戳我~

慢日志开启&备份

开启慢查询日志:戳我~
自动恢复脚本:戳我~

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:部分功能报错说明:部分不可直接使用的功能需要对应配置环境,参考对应功能的文档配置即可

执行效果

230418 163856

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

运维企业实战Shell脚本合集+万能工具箱 的相关文章

  • Qt 嵌入式触摸屏 QMouseEvents 在收到 MouseButtonRelease 之前未收到

    我在带有触摸屏的小型 ARM 嵌入式 Linux 设备上使用 Qt 4 8 3 我的触摸屏配置了 tslib 并对其进行了校准 因此 etc 中有一个 pointcal 文件 我的触摸事件的位置工作得很好 但无论如何我都会在鼠标按下或鼠标释
  • 如何在 Vim 中突出显示 Bash 脚本?

    我的 Vim 编辑器自动突出显示 PHP 文件 vim file php HTML 文件 vim file html 等等 但是当我输入 vim file在里面写一个Bash脚本 它不会突出显示它 我如何告诉 Vim 将其突出显示为 Bas
  • 如何通过ssh获取远程命令的退出代码

    我正在通过 ssh 从远程计算机运行脚本 ssh some cmd my script 现在 我想在本地计算机上存储 shell 脚本的退出状态 我该怎么做 假设没有任何问题ssh其本身 其退出状态是在远程主机上执行的最后一个命令的退出状态
  • 选择fasta文件中氨基酸超过300个且“C”出现至少4次的序列

    我有一个包含蛋白质序列的 fasta 文件 我想选择超过 300 个氨基酸且半胱氨酸 C 氨基酸出现超过 4 次的序列 我使用此命令来选择具有超过 300 个 aa 的序列 cat 72hDOWN fasta fasta bioawk c
  • 应用程序中两个不同版本的库

    考虑一个场景 其中有两个不同版本的共享库 考虑 A 1 so 链接到 B so A 2 so 链接到 C so 现在 B so 和 C so 都链接到 d exe 当 B so 想要调用 A 1 so 中的函数时 它最终会调用 A 2 so
  • Linux中如何避免sleep调用因信号而中断?

    我在 Linux 中使用实时信号来通知串行端口中新数据的到达 不幸的是 这会导致睡眠呼叫在有信号时被中断 有人知道避免这种行为的方法吗 我尝试使用常规信号 SIGUSR1 但我不断得到相同的行为 来自 nanosleep 联机帮助页 nan
  • 对于任何真实数据集,数据压缩比的最小可能值是多少

    我在写信ZLIB类似于嵌入式硬件压缩器的 API 它使用 deflate 算法来压缩给定的输入流 在进一步讨论之前 我想解释一下数据压缩率 数据压缩率定义为未压缩大小与压缩大小之间的比率 压缩比通常大于一 这意味着压缩数据通常比未压缩数据小
  • 在 Bash 中获取 Mac OS X 上正在运行的应用程序列表? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 是否可以使用 Bash 获取正在运行的应用程序列表 我不是在谈论进程 而是在 Dock 中的应用程序 以及菜单栏中的应用程序也很好 osascript
  • Vagrant 遇到问题 - “404 - 未找到”

    我正在尝试使用 Vagrant 制作一个 LAMP 盒子 有人告诉我它使用起来非常简单 我对网络和虚拟机完全陌生 对 Linux Ubuntu 的经验也很少 我目前已尝试按照官方文档页面上的教程进行操作 http docs vagrantu
  • 向后台进程发送命令

    我有一个先前运行的进程 process1 sh 它正在后台运行 PID 为 1111 或其他任意数字 我怎样才能发送类似的东西command option1 option2PID 为 1111 的进程 I don t想要启动一个新的proc
  • 从 shell 查找不包含特定注释的 XML 文件

    我想搜索 awk grep sed 几个 XML 文件 pom xml 文件 跳过某些文件夹 而且 第一个条件是它们必须包含标签
  • Bash:将字符串添加到文件末尾而不换行

    如何将字符串添加到文件末尾而不换行 例如 如果我使用 gt gt 它将添加到文件末尾并换行 cat list txt yourText1 root host 37 echo yourText2 gt gt list txt root hos
  • Python glob,操作系统,相对路径,将文件名放入列表中[重复]

    这个问题在这里已经有答案了 我正在尝试创建一个目录中所有文件的列表 其中文件名以 root 结尾 在阅读了论坛中的一些文章后 我尝试使用 glob 和 os listdir 的基本策略 但我都遇到了麻烦 首先 当我使用 import glo
  • 为什么此 NASM 代码会打印我的环境变量?

    本学期我刚刚完成计算机体系结构课程 除其他外 我们一直在涉足 MIPS 汇编并在 MARS 模拟器中运行它 今天 出于好奇 我开始在我的 Ubuntu 机器上摆弄 NASM 基本上只是将教程中的内容拼凑起来 并感受一下 NASM 与 MIP
  • 如何在 Linux 和 C 中使用文件作为互斥体?

    我有不同的进程同时访问 Linux 中的命名管道 并且我想让此访问互斥 我知道可以使用放置在共享内存区域中的互斥体来实现这一点 但作为一种家庭作业 我有一些限制 于是 我想到的是对文件使用锁定原语来实现互斥 我做了一些尝试 但无法使其发挥作
  • Crontab 每 5 分钟一次 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我如何告诉 crontab 每 5 分钟运行一次 但从每小时的第二分钟开始 换句话说 我想在以下时间执行我的脚本minute 5 2 例如 我的脚本应
  • Python 3.4.3 subprocess.Popen 在没有管道的情况下获取命令的输出?

    我试图将命令的输出分配给变量 而不让命令认为它正在通过管道传输 原因是 如果正在通过管道传输 则相关命令会给出未格式化的文本作为输出 但如果从终端运行 则会给出颜色格式化的文本 我需要获取这种颜色格式的文本 到目前为止我已经尝试了一些事情
  • 在汇编中使用 printf 会导致管道传输时输出为空,但可以在终端上使用

    无输出 https stackoverflow com questions 54507957 printf call from assembly do not print to stdout即使在终端上 当输出不包含换行符时也有相同的原因
  • 如何在线程创建和退出时调用函数?

    include
  • Bash 中所有匹配的^单词^替换^?

    为了澄清 我正在寻找一种方法来执行global搜索并替换先前使用的命令 word replacement 似乎只替换了第一场比赛 有没有一些set我无法选择的选项 尝试这个 echo oneone oneone gs one two Rep

随机推荐

  • 【漏洞修复】Diffie-Hellman Key Agreement Protocol 资源管理错误漏洞(CVE-2002-20001)

    CANCANJUN Diffie Hellman Key Agreement Protocol 资源管理错误漏洞 CVE 2002 20001 概述 漏洞名称 Diffie Hellman Key Agreement Protocol 资源
  • springMVC、freemarker页面半自动静态化

    1 请求 do的URL时直接生成对应的 htm文件 并将请求转发到该htm文件 2 自由控制某个页面是否需要静态化 如果看图不懂的呢 说白了这个中技术就是 java对象 ftl模型 输出html视图 1 在sprinMVC中 MVC框架中的
  • 【数据分析师自学系列-MySQL】创建新表create table、create table as、create table like的区别

    数据分析师自学系列 MySQL 创建新表create table create table as create table like的区别 1 create table 基本创建新表方式 格式如下 create table 新表名 列名1
  • java反射机制创建对象实现:java 深度拷贝 -超完美

    java反射机制创建对象实现 java 深度拷贝 超完美 自己做的 下面 package aop public class Student private String name private int age public String
  • 乘法逆元之欧几里得和扩展欧几里得

    乘法逆元 文章目录 乘法逆元 一 模运算的性质 二 除法的模运算 1 除法模运算 2 解决除法模运算问题 三 乘法逆元 1 定义 2 逆元是干什么的呢 四 求解逆元 1 费马小定理 2 扩展欧几里得 exgcd 1 裴蜀定理 2 exgcd
  • C语言问题:0xC0000005: 写入位置 0xFFFFFFCC 时发生访问冲突。

    最近系统地开始学习C语言 在使用VS2019中用scanf s为一串字符串赋值时 发生了错误 错误如下 0x7837EF8C ucrtbased dll 处 位于 Project2 exe 中 引发的异常 0xC0000005 写入位置 0
  • typora+阿里云OSS+PicGO进行图床设置

    typora 阿里云OSS PicGO进行图床设置 文章目录 typora 阿里云OSS PicGO进行图床设置 前言 crystal ball 一 阿里云OSS设置 satellite 1 进入 阿里云OSS官网 https www al
  • 解决刷新tagsview首页消失问题和引入path报错问题

    我的tagsview功能是用nuoyi源码 如果你的代码有tagsview功能直接找这个文件 如果没有这个功能可以参考nuoyi源码 重点参考以下文件 或者参考 通俗易懂 vue实现tagsview标签导航栏切换菜单功能 详细注释 都能看的
  • 原型聚类&&密度聚类&&层次聚类

    1 原型聚类 原型聚类算法假设聚类结构可以通过一组原型刻画 通常算法先会对原型进行初始化 然后对原型进行迭代更新求解 不同的原型表示和不同的求解方式会产生不同的算法 下面主要介绍三种典型的原型聚类算法 k 均值 学习向量量化 和 高斯混合聚
  • mybatis和spring的集成方法

    集成mybatis和spring 需要的步骤 1 新建maven项目 2 加入maven依赖 在pom xml加依赖 1 加入spring依赖
  • vscode 无法远程调试 xdebug

    launch json version 0 2 0 configurations name Listen for XDebug type php request launch port 9001 该端口不要和php fpm端口相同 path
  • Redis Streams做股票行情MQ?

    redis作为内存数据库 大多时候都是作为缓存来使用 但是因为有pub sub的存在 所以也可以做MQ来使用 做为MQ 它有两个严重的问题 1 无法持久化 2 没有ack机制 redis pub sub是一个要即时消费的MQ 如果消费晚了
  • 序列式容器

    容器的概观与分类 常用的数据结构不外乎array 数组 list 链表 tree 树 stack 堆栈 queue 队列 hash table 散列表 set 集合 map 映射 等等 根据 数据再容器中的排列 特性 这些数据结构分为序列式
  • 华为云云耀云服务器L实例评测

    大家好 我是雄雄 欢迎关注微信公众号 雄雄的小课堂 目录 前言 效果图 购买云耀云服务器L实例 重置密码 放开端口 远程连接 安装云监控面板 进入监控面板 前言 有幸参与了华为云云耀云服务器L实例的评测名额 借着评测 顺便教给大家一项技能
  • 多视图聚类(multi-view clustering)简介

    多视图聚类 目前大概有以下几种 多视图k means聚类 多视图谱聚类 多视图图聚类 多视图子空间聚类 multi view subspace clustering 深度学习多视图聚类 deep multi view clustering
  • Vector迭代器实现

    实现数组的迭代器 实现内容 1 使用C 语言实现一个长度可扩充的数组结构 要求使用class实现 不能直接使用vector等现成的数据结构 2 要求实现为可以用于不同数据类型的数组结构 并不是说同一个对象需要存储多种类型的数据 建议使用te
  • 【满分】【华为OD机试真题2023 JAVA&JS】租车骑绿道

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 租车骑绿道 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 部门组织绿道骑行团建活动 租用公共双人自行车骑行 每辆自行车最多坐两人 做大载重M 给出部门每个人的体
  • 毕业设计 单片机与OpenMV机器视觉目标跟踪系统

    文章目录 0 前言 课题简介 设计框架 3 openMV实现舵机定位色块STM32 3 硬件设计 4 软件设计 4 1 硬件连接 4 2 软件代码 OpenMV端 4 3 软件代码 STM32端 4 4 利用PC端测试数据数据是否发送接收正
  • 《银行法律法规》一、经济金融基础知识——3、金融市场

    第三章 金融市场 第一节 金融市场概述 考点1 金融市场功能 概念 金融市场是指货币资金融通和金融工具交易的场所 金融市场的融资行为既包括以银行等金融机构为信用媒介的间接融资行为 也包括各类交易主体之间的直接融资行为 主体 是各类融资活动的
  • 运维企业实战Shell脚本合集+万能工具箱

    文章目录 系统维护篇 服务器日常巡检脚本 下线登录用户 企业级Linux日常自动抓取服务器巡检 登录 执行命令记录 备份脚本 终端对话 广播消息 批量查询IP归属地 手机号归属地信息 Linux开机后自动执行命令或脚本 一键自动格式化输出S