Jiangxl~
CSDN博客专家、51CTO专家博主、阿里云博客专家、华为云享专家、DevOps运维领域优质创作者、
2021年度博客之星运维与安全领域TOP1,InfoQ签约作者、阿里云社区签约作者。博客包括:Python、前端、Kubernetes、Docker、CI/CD、DevOps、Prometheus、Zabbix、MQ、Redis、MySQL、WEB集群、自动化运维、阿里云、ELK、Linux、等相关使用及进阶知识。查看博客过程中,如有任何问题,皆可随时沟通。
展开
-
Shell脚本经典案例:文件的备份
至于+1表示2天之外的文件是因为n值只能是整数,即比1大的最近的整数是2,所以-mtime+1不是比当前时间大于1天(24小时),而是比当前时间大于2天(48小时)n表示文件更新时间距离为n天就是当天,24小时外48小时内,-n表示在n天以内,+n表示n天以前。-mtime1表示文件修改时间距离当前1天的文件,就是在24小时外,48小时内的文件。-mtime0表示修改文件距离当前为0天的文件,即距离当时时间不到1天的文件。-mtime+1表示一天前的文件,距离当前时间为2天之外的文件。...原创 2022-07-31 09:59:53 · 1508 阅读 · 0 评论 -
Shell脚本经典案例:探测批量主机是否存活
一开始我们用ping1次就下定结果说对方主机不通,可能由于网络问题第二次会通。原创 2022-07-31 09:59:02 · 1212 阅读 · 1 评论 -
Shell项目实战1.系统性能分析
select格式和for格式一致,但是select变量名inxxxxxx都将打印成菜单。函数和5的是同一个文件。原创 2022-07-31 09:57:16 · 536 阅读 · 0 评论 -
Linux Shell脚本之正则表达式
正则表达式RE重要的文本处理工具:vim sed awk grep1.什么是正则表达式?正则表达式(regular expression,RE)是一种字符模式,用于在查找过程中匹配指定的字符。在大多数程序里,正则表达式都被置于两个斜杠之间;例如/l[oO]ve/就是由正斜杠界定的正则表达式。它将匹配被查找的行中任何位置出现的相同模式,在正则表达式中,元字符是重要的概念匹配数字:1+$ ^:以xxx开头,+前面的对象出现一个或多个,$是以xxx结尾,[]里面的是匹配的模式匹配mail:[a-z原创 2022-05-08 09:10:34 · 1703 阅读 · 678 评论 -
Linux系统通过Shell脚本实现一个全方面的系统性能分析系统
Linux系统通过Shell脚本实现一个全方面的系统性能分析系统文章目录Linux系统通过Shell脚本实现一个全方面的系统性能分析系统1.利用select循环实现系统工具箱2.命令技巧3.整个脚本实现方式4.改造成函数4.1函数文件内容4.2脚本内容5.执行脚本显示所有内容1.利用select循环实现系统工具箱select格式和for格式一致,但是select 变量名 in xxx xxx都将打印成菜单#!/bin/bashPS3=“enter parment: ”select xtgjx i原创 2022-05-01 20:31:56 · 925 阅读 · 1 评论 -
shell脚本实现zabbix监控信息收集
zabbix信息收集一般zabbix信息收集都是写成脚本思路:将监控的信息写成函数,使用位置参数$1来调用函数即可,一般都是zabbix来传参1.tcp信息收集tcp三次握手 一般由客户端发起请求 1.首先客户端向服务器发起请求,给服务器发送一个SYN的请求包 2.服务器接收确认后给客户端回复一个ACK的确认包,在向客户端发起一个SYN的包,表示请求和客户端建立连接 3.客户端收到sync的包后会回复一个ACK的确认包,表示与服务器建立连接,三次握手结束tcp四次挥手原创 2020-06-13 23:02:07 · 1100 阅读 · 2 评论 -
利用shell脚本写一个系统性能分析工具
项目实战1.系统性能分析1.利用select循环实现系统工具箱select格式和for格式一致,但是select 变量名 in xxx xxx都将打印成菜单#!/bin/bashPS3=“enter parment: ”select xtgjx in disk_info filesystem_info ip_info mem_info cpu_info quitdo case $xtgjx in disk_info) lsblk原创 2020-06-13 23:01:17 · 740 阅读 · 1 评论 -
shell内置命令
shell内置命令影响shell程序的内置命令:truefalseexitbreakcontinueshift…shift 使位置参数向左移动,默认移动1位,可以使用shift 2 如果希望处理完一个参数让他消失,例如本来有3个参数,处理完一个后踢出去一个,就剩2个,可以使用shift命令来实现exit 退出整个程序break 结束当前循环,或跳出本层循环 break 1表示跳出一层循环,break 2表示跳出二层循环continue 忽略本次循环剩余的代码,直接原创 2020-06-13 23:00:26 · 427 阅读 · 1 评论 -
shell脚本中实现function函数
shell 函数传参 $1,$2变量 local 如果想让变量只在函数内部使用,则使用local 变量名将变量做成局部变量即可返回值return $?======================================================函数的功能 完成特定功能的代码片段(块) 在shell中定义函数可以使用代码模块化,便于复用代码 函数必须先定义才可以使用1.定义函数方法1: 函数名(){ 函数要实现的功能代码 }方法2:原创 2020-06-13 22:59:51 · 4279 阅读 · 1 评论 -
shell脚本中实现数组变量
shell 数组变量普通数组:只能使用整数作为数组索引关联数组:可以使用字符串作为数组索引数组变量和普通变量的区别:最明显的曲边就是普通变量一次只能设置一个变量值,而数组可以有多个值,例如普通变量(ip=192.168.81.210),数组变量(ip=(192.168.81.210 192.168.81.220)),普通变量是按一个字符当做一个索引位,而数组变量是一个字符串作为一个变量,另外普通变量的索引位都是整数,从0开始,而数组变量可以是整数也可以是字符串,这就要说到关联数组,例如(info=([原创 2020-06-13 22:58:55 · 3243 阅读 · 1 评论 -
Shell脚本中利用expect实现非交互式
expect非交互式expect可以在脚本中完成一些交互式的操作,例如远程登录时要输入yes或者输入密码expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。expect自动交互流程:spawn启动指定进程—expect获取指定关键字—send向指定程序发送指定字符—执行完成退出.expect常用命令总结:spawn 交互程序开始后面跟命令或者指定程序expect 获取匹配信息匹配成功原创 2020-06-13 22:57:11 · 738 阅读 · 2 评论 -
shell脚本并发控制详解
shell并发控制1.文件描述符File Descriptors (FD,文件描述符或文件句柄):进程使用文件描述符来管理打开的文件查看当前进程的fd确定以下三点如何exec打开一个文件 exec 3<> file1.txt如何exec关闭一个文件(释放文件句柄)如果没有释放句柄,文件删除后描述符依然还在 exec 3<&-当一个文件FD未被释放,删除源文件也不会影响FD rm -rf file1 cp /proc/$$/3 file1[r原创 2020-05-31 17:36:07 · 1540 阅读 · 2 评论 -
shell脚本-while/until循环详解
shell循环:while until循环次数不一定是固定的,可以固定,可以不固定如果希望对一个文件进行逐行处理建议使用while循环而不是fot循环,格式为while read line;do;done < $1处理循环次数是固定的使用for循环,循环次数不固定则用while或者untilwait命令是等待其他命令执行完成后在执行其他命令,仅限于后台程序1.while语句结构 while 条件测试 do 循环体 done 当条件测试成立(条件测试为真,则执原创 2020-05-31 17:34:34 · 1007 阅读 · 1 评论 -
shell脚本-for循环语句详解
shell循环-forfor循环默认跳过空行,遇到空行或者空格则不会去理睬循环分为循环次数是固定的和循环次数不是固定的,固定的有for循环,不固定的有while和until循环for循环每次都以空格进行分隔,例如 lisi 123,本应该让i变量取一整行,结果却把lisi,123分别赋给了变量,达不到我们预期的效果,即使使用awk命令也同样只会输出lisi,123,因为$2不存在,详细请看036视频中的28分处,可以修改IFS分隔符值,让for处理文件时按回车分隔IFS:内部字段分隔符 例如修原创 2020-05-31 17:33:41 · 1988 阅读 · 2 评论 -
shell脚本case_模式匹配详解
case 模式匹配一、case语法结构case 变量名 in模式1) 命令序列1 ;;模式2) 命令序列2 ;;模式3) 命令序列3 ;;*) 无匹配后命令序列esac在某种意义上,case语句是if语句的简洁版,case语句适合做字符串模式匹配,如果不同的字符值对应不同的功能则用case语句实现,case无法做比较以及测试命令,最后一个模式可以省略;;command -v 命令用来测试是否是一个命令看$?返回值即可1.1根据系统版本匹配yum源文件#!/b原创 2020-05-30 20:36:54 · 1387 阅读 · 1 评论 -
shell脚本if流程控制详解
Shell条件测试 if 流程控制文件测试数值比较字符串比较1、shell条件测试格式1:test 条件表达式格式2:[ 条件表达式 ]格式3:[[ 条件表达式 ]]if后面可用跟任何命令如果想让条件为真后什么也不输出,则使用:命令,:命令=true命令1.1文件测试 格式:[ 操作符 文件或目录 ] 选项: [ -e dir|file ] 测试目录|文件是否存在 [ -d dir ] 测试是否为目录 [ -f file ] 测试是否为文件原创 2020-05-30 20:35:39 · 583 阅读 · 1 评论 -
shell脚本变量详解(自定义变量、环境变量、变量赋值、变量运算、变量内容替换)
shell变量shell变量是指用一个特定的字符串去表示不固定的内容1.变量的类型1.1自定义变量一般情况下不怎么使用环境变量,如果需要在其他文件中引入某个文件的变量则在脚本最开始的位置使用source 或者. 执行下该脚本即可 定义变量:变量名=变量值 变量名必须以字母或下划线开头,区分大小写 ip1=127.0.0.1 引用变量:$变量名 或 变量名(“”花括号另有他意,假如想在变量后面直接加其他内容,这是用花括号会非常方便,同时也有很多功能,例如{变量名} (“{}”花括号另有原创 2020-05-30 20:34:53 · 1327 阅读 · 2 评论 -
初识Linux Bash Shell
一、SHEEL技术 1.shell特性 2.shell变量 3.shell条件测试 4.shell数值运算 5.流程控制、循环 if case for until while break continue exit shift array funiction用户级别的几个重要文件 ~/.bash_profile 用户环境变量配置文件 ~/.bashrc 用户登录系统后执行的命令 ~/.bash_log原创 2020-05-24 15:00:05 · 538 阅读 · 3 评论