循序渐进学运维-脚本篇
文章平均质量分 84
运维界的尚方宝剑,万剑归宗第一剑
互联网老辛
云原生讲师,创业公司负责人,还有一堆虚名:CSDN博客专家,华为云-云享专家,阿里云专家博主等;
展开
-
shell脚本四剑客之awk详解
AWK从入门到放弃原创 2022-12-25 18:16:56 · 1362 阅读 · 0 评论 -
【shell附加课】shell脚本调试方案详解
文章目录前言一. shell脚本开发规范二. shell脚本调试技巧1. 使用echo +exit 命令断点调试2. 使用bash命令参数调优3. 使用 set 来调试脚本总结前言最近小伙伴们的脚本写的越来越长,写的长了之后就会发现三个苦恼的事情:上面定义了变量,后面不知道变量是什么意思了;脚本需要一遍遍的调试很麻烦;调试脚本只能一次次的运行,查看报错很麻烦。首先要恭喜你,当你意识到这几个问题的时候,你的脚本level又提升了一个档次,这个时候你需要考虑脚本的规范和脚本的调试方法了。今原创 2020-08-29 21:37:49 · 2713 阅读 · 0 评论 -
循序渐进学运维-shell脚本实战专栏
前言shell脚本的基础知识已经更新完毕,学会了基础知识并不代表学会了shell脚本,所以后期我会给大家一些案例,这些案例会放在《shell脚本天天练》系列里。shell脚本实战目录【Linux】shell脚本概述【Linux】shell脚本基础-变量【Linux】shell脚本实战-使用shell进行数学运算【Linux】shell脚本实战-各类运算符介绍【Linux】shell脚本实战-if单双分支条件语句详解【Linux】shell脚本实战-if多分支条件语句详解【Linux】she原创 2020-08-22 19:22:13 · 5808 阅读 · 30 评论 -
【shell案例】检测磁盘使用率
[root@ecs-c13b ~]# cat fdisk.sh #!/bin/bash# 截取IPIP=`ifconfig eth0 |awk -F " " 'NR==2{print $2}'`# 定义使用率,并转换为数字SPACE=`df -Ph |awk '{print int($5)}'` for i in $SPACEdoif [ $i -ge 90 ]then echo "$IP的磁盘使用率已经超过了90%,请及时处理"fidone本题里如果还要拓展的话,可以原创 2020-08-22 08:15:34 · 3587 阅读 · 0 评论 -
【shell】shell脚本实战-awk使用案例
文章目录1. 使用NR行号来定位提取IP2. 去除首行3. 其他使用1. 打印特定字段2. NF, 字段数量3. 计算和打印4. 打印行号5. 在输出中添加内容6. 自定义格式输出4. 检查服务器是否受到DDOS攻击的脚本总结1. 使用NR行号来定位提取IP[root@ecs-c13b awk]# ifconfig eth0 |awk -F " " 'NR==2{print $2}'192.168.0.1922. 去除首行[root@ecs-c13b awk]# route -nKer原创 2020-08-19 15:09:50 · 2694 阅读 · 0 评论 -
【shell】shell脚本实战-awk工作模式讲解
文章目录awk工作的三个步骤awk中的各种模式详解1. awk 脚本拥有的形式2. 正则表达式3. 关系表达式4. 组合的Pattern(模式)5. Pattern1,Pattern26. BEGINa) 给文件开头添加信息b) 取eth0的ip地址7. END1) 给文件结尾 添加信息2) 统计 /etc/services 文件中的空行的数量3) 显示用户信息配置文件中uid大于500的用户名及uid信息并在开头显示“用户名 UID”字样,在结尾显示“the over"awk工作的三个步骤读:从文件原创 2020-08-19 14:39:59 · 2472 阅读 · 0 评论 -
【shell】shell脚本实战-awk基本介绍
文章目录前言概念awk常用的选项和命令awk的选项awk的环境变量awk的运算符awk的内置字符串函数前言我们之前学习过grep,sed,这两个工具的作用如下:grep和egrep:文本过滤的sed:流编辑器,实现编辑的今天我们要讨论的awk,是一个主要做文本输出的。概念AWK是一种优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言的最大功能取决于一个人所拥有的知识。awk命名:Alfred Aho Peter 、Weinberger和br原创 2020-08-19 12:56:42 · 2556 阅读 · 0 评论 -
【shell】用shell脚本判断未出勤的学员
前言平时需要在腾讯会议上课,我们要检查学员是否在线,让学员在腾讯会议敲1.敲完1后比对谁没有在线,需要花的时间比较长,为了能够尽快查出谁签到谁没签到,让负责脚本的张老师写了一个脚本解决这个问题脚本原文#!/bin/bash#name.txt是全部学员的名单,每行一个名字# a.txt内容是腾讯会议签到敲1的内容while read linedo if ! grep "$line" a.txt &>/dev/null;then echo "$line 未签到"原创 2020-08-19 09:54:12 · 2703 阅读 · 2 评论 -
【shell】shell脚本实战-sed流编辑器
文章目录sed的介绍sed的执行过程sed的用法sed常用选项实战案例1. 将 passwd中root替换为zmgaosh2. 按行查找替换1)单行替换:2)多行替换:3)删除2-4行内容4) 添加行5) 在文件最后追加内容6) 在文件的第二行后面追加内容7) 对原文件进行修改 -i总结sed的介绍sed是Linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,特别适合于大文件的编辑sed 支持正则表达式,如果要扩展正原创 2020-08-15 09:32:51 · 5136 阅读 · 35 评论 -
【shell】shell脚本实战-expect语言的使用
文章目录expect的介绍1. 含义2. 应用场景3. 安装expect语法介绍实战案例1. expect实现ssh自动登录方法一:方法二: 传参版总结expect的介绍1. 含义expect是一个免费的编程工具,用来实现自动的交互式任务,而无需人为干预。说白了,expect就是一套用来实现自动交互功能的软件。2. 应用场景借助Expect处理交互的命令,可以将交互过程如:ssh登录,ftp登录等写在一个脚本上,使之自动化完成。尤其适用于需要对多台服务器执行相同操作的环境中,可以提高系统管理人员原创 2020-08-15 07:45:46 · 3176 阅读 · 0 评论 -
【shell】shell脚本实战-shell脚本函数详解
文章目录前言shell函数的定义函数的优势shell 函数的调用实战案例总结前言Shell 函数的本质是一段可以重复使用的脚本代码,这段代码被提前编写好了,放在了指定的位置,使用时直接调取即可。Shell 中的函数和C++、Java、Python、C# 等其它编程语言中的函数类似,只是在语法细节有所差别。今天我们就来讨论下shell脚本的函数shell函数的定义shell中的函数的语法有以下三种:方法一:function 函数名 () { 指令... } 方法二原创 2020-08-14 07:53:03 · 2592 阅读 · 0 评论 -
【shell】shell脚本实战-shell数组
文章目录数组的定义数组的简单介绍数组的引用数组使用举例数组的切片与替换1. 根据索引切片2. 数组替换总结数组的定义数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。与大部分编程语言类似,数组元素的下标由0开始。在 Shell 中,用括号**( )来表示数组,数组元素之间用空格**来分隔。由此,定义数组的一般形式为:array=(value01 value02 … valuen)注意,赋值号=两边不能有空格,必须紧挨着数原创 2020-08-14 07:20:31 · 2691 阅读 · 0 评论 -
【shell】shell脚本实战-循环的控制
文章目录前言break和continue的区别三种方式的对比案例1. break 跳过整个循环2. continue跳过当次循环3. exit退出脚本实战案例总结前言在我们使用循环语句进行循环的过程中,有时候需要在未达到循环结束条件时强制跳出循环,那么Shell给我们提供了四个命令来控制循环语句continue 跳过当次循环break 跳过整个循环exit 退出脚本return 退出函数break和continue的区别区别:Break:跳出整个循环Continue原创 2020-08-14 07:10:37 · 2452 阅读 · 0 评论 -
【shell】shell脚本实战-while循环语句
前言上文我们讨论了for循环的使用,在有限循环里,我们使用for循环是很方便的一件事情,今天我们来探讨下while循环while循环语句的语法分析语法格式一:while [条件]do 操作done语法格式二:while read linedo 操作done < file通过read命令每次读取一行文件,文件内容有多少行,while循环多少次注意:只有表达式为真,do和done之间的语句才会执行,表达式为假时,结束循环(即条件成立就一直执行循环)例如:whil原创 2020-08-11 13:48:35 · 6674 阅读 · 47 评论 -
【shell】shell脚本实战-for循环
文章目录前言for循环介绍for循环的语法分析for循环应用举例1. 从命令中取值2. 输出从1到103. 批量用户处理4. ping命令最经典的脚本5. 批量重命名文件总结前言循环语句常用于重复执行一条命令或一组命令等,直到达到结束条件后,则终止执行。在Shell中常见的循环命令有while、until、for和select等今天我们来探讨第一个循环语句,for循环。for循环介绍for循环语句与while循环语句类似,但for循环语句主要用于有限次的循环场景,while主要无限次循环的场景,原创 2020-08-09 16:50:01 · 2936 阅读 · 0 评论 -
【shell】shell脚本的文本替换工具-tr
文章目录tr命令介绍常见参数常用命令展示1. 将输入的字符小写换成大写2. 实现对密码加密3. 使用tr删除字符4. 删除多余的空行5. 将小写变成大写总结tr命令介绍tr是一个超级好用的工具,他经常可以用来编写单行命令,对来自标准输入的内容进行字符的替换,字符的删除,以及重复字符的压缩。 也可以将一组字符变成另外一组字符。标准输入 stdin常见参数[root@rhce test]# tr --help用法:tr [选项]... SET1 [SET2]Translate, squeeze,原创 2020-08-08 21:40:08 · 2711 阅读 · 0 评论 -
xargs的使用实战
文章目录一. xargs命令介绍xargs 作用:二. 常用参数二. 单行与多行的输出1. 创建测试文件2. 将多行变成单行3. 将单行数据 变成3个空格一列三. 指定定界符四. 特殊用法总结一. xargs命令介绍xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。xargs 擅长将标准输入数据转换成命令行的参数。xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,原创 2020-08-08 20:52:13 · 2477 阅读 · 1 评论 -
【Linux】shell脚本实战-流程控制语句case
文章目录前言什么是case语句case语句语法分析case实战案例1. 做出你的选择2. 早饭吃什么3. apache服务启动脚本实战总结前言前面我们探讨过shell脚本中的if语句,单分支,双分支以及多分支的写法,今天我来看另一个流程控制语句case。什么是case语句控制语句:用来实现对程序流程的选择、循环、转向和返回等进行控制;case 语句和 if…elif…else 语句一样都是多分支条件语句,不过和多分支 if 条件语句不同的是,case 语句只能判断一种条件关系,而 if 语句可以原创 2020-08-06 08:20:02 · 2625 阅读 · 0 评论 -
【Linux】shell脚本实战-if多分支条件语句详解
文章目录前言多分支语句的语法多分支语句举例:1. 出嫁的条件2. 管理http服务实战脚本3. 猜数字游戏v1版本-if版本总结前言前面我们已经学习过单分支语句和双分支语句的使用。 双分支语句就是在单分支语句的基础上又加了一层结果项。今天我们来探讨下多分支语句,顾名思义,多分支语句就是在双分支语句基础上又加了一个可能性的结果如果你还没有学习单双分支条件语句,建议参考下方链接学习:【Linux】shell脚本实战-if单双分支条件语句详解多分支语句的语法语法结构:if条件测试操作1 ; the原创 2020-08-05 23:06:18 · 6152 阅读 · 1 评论 -
【Linux】shell脚本实战-if单双分支条件语句详解
文章目录if单分支1. 单分支语法分析2. 单分支语法规范3. if单分支脚本举例a. 检查是否为超级用户b. 找一个金钱大于1000000的结婚c. 判断文件是否为普通文件d. 判断一个文件是否存在总结if单分支在所有的编程语言里面,if条件语句几乎是最简单的语句格式,且用途最广。当if后面的<条件表达式>成立(真)的时候,就会执行then后面的指令或语句,否则,就会忽略then后面的指令或语句,转而执行fi下面的程序。if语句流程图:1. 单分支语法分析第一种语法:if原创 2020-08-05 22:05:31 · 6744 阅读 · 36 评论 -
【Linux】shell脚本实战-各类运算符介绍
文章目录前言一. 复习之前内容1. 算术运算符2. 常见的算术运算命令二. 关系运算符三. 布尔运算符四. 逻辑运算符五. 字符串运算符六. 文件测试运算符总结前言上几篇文章我们主要讨论了shell的脚本基础,以及基础的运算符,在这里我们稍微来复习下之前的内容:一. 复习之前内容1. 算术运算符下表列出了常用的算术运算符,假定变量 a=10,变量 b=20:运算符说明举例+加法expr $a + $b 结果为 30。-减法expr $a - $b 结果为 -1原创 2020-08-05 20:59:59 · 2556 阅读 · 0 评论 -
【Linux】shell脚本实战-使用shell进行数学运算
文章目录前言一. 数据运算命令介绍1. let的使用2. [ ] 的使用3. (())的使用4. expr的使用5. bc的使用a. 基础运算b. **设置小数精度: scale**c. 二进制和十进制转换d. 计算平方根二. 获取字符串的长度总结前言上篇文章我们探讨了shell脚本的基础和变量, 在学习变量的时候我们探讨了环境变量和用户自定义变量,以及一些特殊的用法。无论使用哪种语言都少不了进行算术操作,今天我们来看看如何使用shell脚本进行数学运算一. 数据运算命令介绍在shell环境中,我原创 2020-08-05 17:37:11 · 3250 阅读 · 0 评论 -
【Linux】shell脚本基础-变量
文章目录什么是变量?变量分类:1. 按照变量的作用分2. 按照变量的作用域分:环境变量用户定义变量变量的命名与规则:1) 变量规则测试2) 关于${} 的使用,拼接测试3)**能不能不加{}?**4) 使用反引号或者$()5) 特殊用法6) 单引号和双引号的区别特殊变量特殊变量实例变量的案例总结什么是变量?变量是任何一门语言中都不可缺少的组成部分,用于存放各种数据。 脚本语言在使用变量前通常不需要声明类型,只需要直接赋值即可。环境变量: 有一些特殊的变量会被shell脚本或者操作系统环境用来存储一些原创 2020-08-05 16:36:57 · 2735 阅读 · 0 评论 -
【Linux】shell脚本概述
文章目录前言shell脚本的概念shell脚本的结构前言本系列为循序渐进学运维系列的shell脚本实战部分,从零带你学脚本。shell脚本的概念Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户进行对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕反馈给用户。这种对话方式可是交互也可以是非交互式的静态语言:编译型语言 如:c原创 2020-08-05 11:40:18 · 5275 阅读 · 55 评论 -
shell脚本实现系统安全巡检
在使用脚本前需要安装:ag命令安装方式如下:[root@xinsz08-63 LinuxCheck]# yum install epel-release[root@xinsz08-63 LinuxCheck]# yum install the_silver_searcherag的日常使用:ag类似于grep和find,但是执行效率比后两者高ag -g a.txt 查找名字为a....原创 2020-04-08 10:34:02 · 2765 阅读 · 2 评论 -
shell 编程 入门到实战详解
一. shell变量、循环概述Shell是一种具备特殊功能的程序,它提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令,并把它送入内核去执行。内核是Linux系统的心脏,从开机自检就驻留在计算机的内存中,直到计算机关闭为止,而用户的应用程序存储在计算机的硬盘上,仅当需要时才被调入内存。Shell是一种应用程序,当用户登录Linux系统时,Shell就会被调入内存去执行。Shell独...原创 2019-09-30 09:19:55 · 2863 阅读 · 0 评论 -
shell脚本-LVS客户端自动配置脚本
#/bin/bashVIP=(202.106.195.111 202.106.195.222)[ -e /etc/sysctl.conf ]&&rm -f /etc/sysctl.conf[ -e /etc/sysconfig/network-scripts/ifcfg-lo:0 ]&&rm -f /etc/sysconfig/network-scripts/...原创 2019-04-21 20:55:19 · 2485 阅读 · 0 评论 -
shell脚本-企业日常巡检脚本
#!/bin/bash function system(){echo "#########################系统信息#########################"OS_TYPE=`uname`OS_VER=`cat /etc/redhat-release`OS_KER=`uname -a|awk '{print $3}'`OS_TIME=`date +%F_%T`...原创 2019-04-21 20:51:15 · 4065 阅读 · 0 评论 -
shell脚本-LVS节点健康检查
#!/bin/bashVIP=202.106.195.1PORT=80RIP=(192.168.100.10 192.168.100.20) while truedo for ((i=0;i<`echo ${#RIP[*]}`;i++)) do code=`curl -I -m 10 -o /dev/null -s -w %{http_code} http://$...原创 2019-04-21 20:50:24 · 2618 阅读 · 0 评论 -
shell脚本-检查一组命令所花费的时间
#!/bin/bashstart=$(date +%s)yum install httpd -yend=$(date +%s)different=$((end - start))echo $differentecho time taken to execute commands is $difference seconds.本例子是在测试安装http所需要的时间如果要查看一个...原创 2018-05-08 10:58:59 · 3183 阅读 · 1 评论