Shell编程
文章平均质量分 71
Shell基础+编程+进阶
秋风お亦冷
运维工程师
展开
-
Nginx节点健康检查与自动上下线管理脚本,推送告警到企业微信
适用于 Nginx TCP健康检查的 Shell 脚本示例演示原创 2024-09-11 14:52:57 · 465 阅读 · 0 评论 -
Linux mail自动推送邮件脚本+一键发送邮件脚本
PS:脚本还有可优化的空间,比如可添加携带附件功能(如:-a test.txt)在服务器配置邮件,以实现邮件的发送。发文本内容为示例内容,仅供参考~无定时任务,手动执行交互输入发送。每日随机抽取一行放入邮件内容。原创 2024-01-02 17:40:43 · 714 阅读 · 1 评论 -
Shell万能工具箱脚本
整合业务中常用的脚本并分类触发,所有功能均基于此文档内的外链脚本原创 2023-04-18 16:59:18 · 548 阅读 · 0 评论 -
Linux开机后自动执行命令或脚本
服务器重启后Docker服务是不会自动启动的,需要手动启动,此处就以此为例让它自己启动。应用场景:开机后自动执行命令或脚本。原创 2023-04-06 14:58:54 · 1764 阅读 · 0 评论 -
Curl格式化输出SQL+Json语句脚本工具
文章介绍了如何手动格式化输出数据,并且编写了一键自动格式化输出SQL+Json语句脚本工具,使用更加便捷!PS:内容以分号分隔。原创 2023-04-14 17:29:53 · 373 阅读 · 0 评论 -
一键列出所有容器IP地址脚本
对于不支持终端的容器会自动跳过并列出容器名,因为每个容器所支持的查看IP命令不同,需要自行手动查看~在服务器带宽被占用,但不好定位是哪个容器时,通过用此脚本来快速过滤容器名,以便解决问题。等长时间不重启,会出现偶尔带宽占用等情况,重启下即可解决带宽占用问题。1.通过查看网络发送/接受量来定位容器IP;2.通过脚本快速过滤IP对应的容器;3.过滤容器IP找到对应容器名。2.列出所有容器名: IP。一般常用的三方服务如。原创 2023-03-29 11:13:58 · 137 阅读 · 0 评论 -
Shell 脚本通过 Curl 发送告警消息到钉钉(附示例模板)
Shell方式调用钉钉告警的编写模板及格式,三种方式任你选择~原创 2023-03-24 17:35:54 · 601 阅读 · 0 评论 -
一键批量自动查询IP归属地+手机号归属地脚本
场景:业务中需要排查某些IP、手机号归属地信息,甚至有些场景是批量的,浏览器直接批量copy查询的话某些网站还收费,所以写了个脚本,无需进入Windows系统打开浏览器查询,直接再Linux系统内执行脚本批量输入查询即可~原创 2023-03-23 14:36:46 · 703 阅读 · 0 评论 -
运维企业实战Shell脚本合集+万能工具箱
企业实战中必备的`Shell`脚本合集,针对:系统维护、线上业务、数据库、DevOps等多个场景的原创 2022-10-28 14:13:20 · 3016 阅读 · 0 评论 -
CPU或内存资源达到阈值重启服务脚本
某个服务资源占用会越来越高或偶尔飙高,判断达到cpu或内存有一项达到90时重启服务并发送钉钉告警,两次判断间隔:10s、20s。原创 2023-01-12 10:38:08 · 680 阅读 · 0 评论 -
运维管理员一键强制下线其他用户脚本+终端对话&广播消息
场景:针对`Linux`服务器多用户的管理维护,让运维管理员更加方便地一键强制下线其他在线用户原创 2022-10-28 13:40:34 · 779 阅读 · 0 评论 -
企业级Linux日常自动巡检脚本
`Linux`基础服务巡检脚本模板收集的一个没有自动化巡检工具的时候,的每日巡检工具, 测试了支持`Redhat、Ubuntu`能用,单少部分部分命令出错, 结果支持查看。原创 2022-02-09 10:22:42 · 1784 阅读 · 0 评论 -
shell模拟银行取款功能流程脚本
模拟功能:登录、查询、提现、转账、存款、清屏、退出。彩色提示打印+使用函数将每个功能单独分割,便于阅读。普通版:未使用函数将每隔功能单独分割。登录次数限制:3次错误强制退出程序。直接复制脚本执行即可测试效果~直接复制脚本执行即可测试效果~PS:输入密码时使用了。选项,界面不会显示密码。PS:输入密码时使用了-s选项,界面不会显示密码。优化版:增加部分操作。原创 2022-02-08 17:37:14 · 646 阅读 · 0 评论 -
shell阶段-day17-进程锁、shell线程并发控制、shell交互式环境
文章目录进程锁shell队列实现线程并发控制shell解释器交互式环境一、交互式环境介绍1、何为交互式环境?2、如何切换交互式环境?二、命令优先级从高到低三、bash的特性1、交互式环境下:命令和文件路径自动补全(使用tab键)2、交互式环境下:命令历史记录3、别名功能4、交给前、后台运行5、输入输出重定向6、支持管道 |7、一行连接多条命令8、双管道左边的命令执行失败才会执行右边9、支持通配符操作,例如*、?、[]、\等,后续我们将会详细介绍进程锁防止进程被重复运行[root@aliyun ~]#原创 2021-02-04 18:04:30 · 395 阅读 · 0 评论 -
shell阶段-day16-systemctl管理脚本
文章目录systemctl管理脚本一、介绍1、systemctl脚本存放在:/usr/lib/systemd/ # 有系统(system)和用户(user)之分2、/usr/lib/systemd/目录下又存在两种类型的文件3、CentOS 7服务结尾的三个部分二、字段详细说明1、Type类型2、EnvironmentFile:指定配置文件,和连词号组合使用,可以避免配置文件不存在的异常。3、Killmode的类型4、Restart类型5、RestartSec6、各种Exec*字段7、[Install]部分原创 2021-02-04 14:04:29 · 325 阅读 · 0 评论 -
shell阶段-day15-三剑客之awk
文章目录三剑客之awk命令一、awk简介1、awk起源2、awk的两种语法格式3、awk选项options4、awk的命令commands总共由三部分组成5、格式省略项二、awk工作原理三、记录与字段相关内部变量四、格式化输出1、print函数2、printf函数五、模式pattern与动作actionpattern可以是如下6个模式:1、正则表达式2、比较表达式3、条件表达式4、算数运算5、逻辑运算和复合模式6、范围模式六、awk示例七、awk流程控制1、if判断2、while与for循环3、数组八、aw原创 2021-02-04 13:53:23 · 185 阅读 · 0 评论 -
shell阶段-day14-三剑客之sed命令
文章目录三剑客之sed命令一、sed介绍二、sed选项与基本用法示例1、sed选项2、sed命令组成1)数字2)正则表达式3)数字+正则表达式4)\cregexpc1、如果c是左斜杠,不需要转义也可以2、如果匹配的正则里有左斜杠,要么将正则转义,要么将c转义三、sed常用命令1、命令与功能2、sed命令示例四、模式空间与保持空间1、sed 有两个内置的存储空间2、模式空间与保持空间的操作命令3、示例:交换文件的行五、sed脚本注意事项六、练习三剑客之sed命令一、sed介绍 sed全称(str原创 2021-02-04 13:33:39 · 131 阅读 · 0 评论 -
shell阶段-day13-三剑客之grep命令
文章目录三剑客之grep命令一、grep介绍1、grep命令主要用于过滤文本,常用grep家族如下2、grep命令格式3、传递方式二、选项与示例1、选项2、选项示例三、正则表达式1、正则表达式介绍2、正则表达式元字符2.1、基本正则元字符集2.2、扩展正则元字符集2.3、posix定义的字符分类四、练习正则表达式及字符处理:三剑客之grep命令一、grep介绍1、grep命令主要用于过滤文本,常用grep家族如下grep: 在文件中全局查找指定的正则表达式,并打印所有包含该表达式的行egrep:扩原创 2021-02-02 18:42:28 · 221 阅读 · 0 评论 -
shell阶段-day12-expect
文章目录expect一、 expect介绍1、expect基础2、总结expect自动应答的基本步骤二、expect实例1、编写自动应答脚本2、为脚本设置超时时间3、规整脚本格式4、练习5、interact交互三、为expect脚本传参1、shell脚本中的变量无法直接在expect中使用的,若expect需要使用变量,有两种方法可以选择:方法1:自定义方法2:可以通过下述方式引入shell变量,注意此时解释器换成#!/bin/bash2、此外,expect脚本还可以从命令行获取参数expect一、 e原创 2021-02-02 18:24:17 · 434 阅读 · 0 评论 -
shell阶段-day11-信号处理
文章目录信号控制一、信号说明二、捕捉信号例1:例2:三、关于HUP信号1、 nohup命令2、setsid命令3、在子shell中提交任务4、screen命令5、远程演示四、僵尸进程与孤儿进程1、僵尸进程2、孤儿进程信号控制一、信号说明在脚本执行过程中, 可能会被一些键盘操作快捷方式所打断, 影响脚本运行# HUP(1): 1、挂起信号 2、往往可以让进程重新加载配置本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与原创 2021-02-02 17:36:15 · 230 阅读 · 0 评论 -
shell阶段-day10-数组
文章目录数组一、数组介绍1、什么是数组?2、为何要用数组?二、数组的使用1、数组的定义2、访问数组内元素3、修改/添加数组元素4、删除数组元素5、数组内元素的截取6、数组内容的替换三、关联数组1、数组分为两种:2、声明关联数组四、遍历数组方法1:方法2:方法3:五、练习练习1:练习2:练习3:数组一、数组介绍1、什么是数组?数组就是一系列元素的集合,一个数组内可以存放多个元素2、为何要用数组?我们可以用数组将多个元素汇总到一起,避免单独定义的麻烦二、数组的使用1、数组的定义# 方式一:原创 2021-02-02 10:32:41 · 107 阅读 · 0 评论 -
shell阶段-day9-函数
文章目录函数一、函数介绍1、什么是函数?2、为何要用函数?3、函数的基本使用方法二、定义函数1、语法2、调用函数三、函数参数1、调用函数时可以向其传递参数2、函数体内部调用函数3、脚本内获取命令行定义函数4、参数处理说明5、@与@与@与*区别示例四、函数的返回值1、情况一2、情况二五、变量的作用域六 登录shell与非登录shell七 作业函数一、函数介绍1、什么是函数?函数,就是用来盛放一组代码的容器,函数内的一组代码完成一个特定的功能,即称之为一组代码块;调用函数,便可触发函数内代码块的运行,这原创 2021-02-02 10:26:34 · 103 阅读 · 0 评论 -
shell阶段-day8-流程控制之for循环
流程控制之for循环一、语法Shell风格语法:for 变量名 [ in 取值列表 ]do 循环体doneC语言风格语法:for ((初值;条件;步长))do 循环体done1、shell风格的for,常用in列表方式for i in 1 2 3for i in {1,2,3}for i in {1..9}for i in {9..1}for i in {a..z}for i in {A..Z}for i in {X..Z}for i in $(命令) # 例原创 2021-01-22 11:41:51 · 680 阅读 · 0 评论 -
shell阶段-day7-流程控制之while循环
文章目录流程控制之while循环一、语法二、简单示例二、continue与break1、区别2、示例三、案例1、监控web页面2、猜数字3、while循环登录脚本4、until9、三中循环方式求1~100的和10、三中循环方式区别总结11、循环嵌套流程控制之while循环一、语法1.语句结构:条件为真时,执行循环体代码while 条件do 循环体done2.until语法结构:条件为假时,一直执行循环体代码,直到条件变为真until 条件do 循环体done# PS:while原创 2021-01-13 18:55:10 · 290 阅读 · 0 评论 -
shell阶段-day6-case语句与select语句
文章目录流程控制之case语句一、语法二、案例1、检测用户身份2、检查nginx启动存活脚本3、通过端口检查并配置nginx存活4、编写简易跳板机脚本5、编写升级版跳板机脚本流程控制之select语句一、语法二、案例1、select简单输出+选择2、省略 脚本内的in list流程控制之case语句一、语法case 变量 in模式1) 命令序列1 ;;模式2) 命令序列2 ;;模式3) 命令序列3 ;;*) 无匹配后命令序列esac二、案例1、检测用户身份检测用户身份:原创 2021-01-12 19:47:38 · 193 阅读 · 0 评论 -
shell阶段-day5-流程控制之if判断
文章目录流程控制之if判断一、单分支if1、语法2、示例二、双分支if1、语法2、示例三、多分支if1、语法:2、示例1)猜年龄2)查询成绩3)判断是否是数字四、练习1、编写脚本,命令行传入一个文件路径,判断文件的类型2、检测指定的主机是否可以ping通,必须使用$1变量3、判断一个用户是否存在4、检测httpd软件是否安装,没有的话则安装5、判断80端口的状态,未开启则重启6、编写监控脚本、配置邮箱1)编写监控脚本2)测试查看3)mailx配置4)测试发送邮件,会报错5)上述报错的解决方式为,依次执行下述原创 2021-01-12 18:29:15 · 279 阅读 · 0 评论 -
shell阶段-day4-元字符
文章目录元字符一、算数运算符1、运算符2、算数运算符需要配合下述操作使用3、举例1)bc计算器2)expr计算3)$(())4)$[]5)let6)强调7)练习题二、测试运算符1、测试文件状态-d 目录-s 文件长度 > 0、非空-f 标准文件-w 可写-r 可读-x 可执行-L 符号连接-u 文件有 suid 位设置2、字符串测试== 两个字符串相等!= 两个字符串不相等-z 字符串长度为零-n 字符串长度不为零3、测试数值三、关系运算符1、关系运算符介绍2、举例测试四、赋值运算符=+= 、*=、/原创 2021-01-12 14:22:05 · 384 阅读 · 0 评论 -
shell阶段-day3-基本数据类型与值操作
文章目录基本数据类型与值操作一、 数据类型介绍1、什么是数据?为何要有多种类型的数据?2、shell是一门解释型、弱类型、动态语言二、基本数据类型1、数字类型2、字符串3、shell是弱类型语言4、数组介绍5、数组分为两种1、普通数组2、关联数组三、变量值操作1、获取变量值的长度2、切片3、截断4、内容的替换5、变量的替代6、let7、取命令的结果赋值给变量基本数据类型与值操作一、 数据类型介绍1、什么是数据?为何要有多种类型的数据?数据即变量的值,如age=18,18则是我们保存的数据。变量的是原创 2021-01-12 11:57:04 · 145 阅读 · 0 评论 -
shell阶段-day2-变量
文章目录变量一 、变量介绍1、什么是变量?2、为何要有变量?二、变量的使用1、先定义、后引用先定义后引用2、删除变量三、变量的三大组成部分1、定义一个变量由三大部分组成2、变量名的命名规范3、变量值的三种来源1)直接赋值2)从位置参数获取变量值3)与用户交互获取值三、预定变量1、$与组合符介绍2、举例介绍@与@与@与*的区别例1:for循环下默认按空格分隔例2:被空格分隔为两部分例3:加引号以后总结四、常量变量一 、变量介绍1、什么是变量? 变:指的是事物的状态是可以发生变化的 量:指的是记录原创 2021-01-12 11:34:06 · 121 阅读 · 0 评论 -
shell阶段-day1-基础
文章目录shell基础:一 、编程与编程语言Shell是一门编程语言,作为学习shell的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程?1、 编程的目的是什么?2、什么是编程语言?3、什么是编程?4、什么是程序5、什么是进程6、编程的步骤?7、简单举例介绍编程二、 编程语言分类1、编程的语言的发展经历2、高级语言三 计算机完整体系结构图四 shell介绍1、shell有两层意思2、linux系统上自带多种shell解释器,无需安装3、为何要用shell?4、Shell VS pytho原创 2021-01-12 10:41:46 · 233 阅读 · 0 评论