linux系统巡检及shell脚本

目录

步骤1 系统巡检基本命令

CPU

内存

磁盘

进程

网络、流量

步骤2 shell脚本编写

awk

awk常用内置变量

awk正则

实例一

实例二

实例三

实例四

实例五

sed

选项与参数

例一

例二

例三

例四

例五

例六

例七

grep

主要参数

常用用法

例一

例二

例三

例四

例五

例六

例七

例八

正文开始!!!

步骤1 系统巡检基本命令

CPU

top

vmstat 2.5

sar 2.5

uptime

grep -c 'model name' /proc/cpuinfo    查看CPU核数

内存

free –m

top

vmstat 2.5

sar -r 2.5

磁盘

yum install iotop –y

iotop

iostat

iostat –x

sar –d –p 2.5

进程

ps –elf

pidof

ps –aux

pstree

lsof

网络、流量

sar -n DEV 1 2

iftop

先编译安装libpcap

再编译安装iftop

步骤2 shell脚本编写

   文本三剑客awk、sed、grep

awk

    awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。

   awk 是一种很棒的语言,它适合文本处理和报表生成,其语法较为常见,借鉴了某些语言的一些精华,如 C 语言等。在 linux 系统日常处理工作中,发挥很重要的作用,掌握了 awk将会使你的工作变的高大上。 awk 是三剑客的老大,利剑出鞘,必会不同凡响。

    尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。 pattern就是要表示的正则表达式,用斜杠括起来。

   awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。

通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。

{ print }代码块。在 awk 中,花括号用于将几块代码组合到一起,这一点类似于 C 语言。在代码块中只有一条 print 命令。在 awk 中,如果只出现 print 命令,那么将打印当前行的全部内容。再次说明, awk 对输入文件中的每一行都执行这个脚本。

https://img-blog.csdnimg.cn/img_convert/dbefc4c0af8f0e9f40355798d9b3ae65.png

awk常用内置变量

https://img-blog.csdnimg.cn/img_convert/a3ed497d33460eabb871a63d575cfd9c.png

awk正则

https://img-blog.csdnimg.cn/img_convert/9c2899649f4a13baff98d3d8414ecaf5.png

实例一

查看磁盘使用情况的第2,3,4 列

df -h |awk '{print $2 "\t" $3 "\t" $4}'

实例二

用 ifconfg 获取本机IP地址(结果只显示IP地址)

ifconfig ens33 |grep "inet " | awk '{ print $2}'

实例三

前面加BEGIN 在输出前可以输出一句话test

awk 'BEGIN{print "hello everyone !!!"} {print $1 "\t" $2}' info.txt

实例四

FS 指定分隔符
将passwd的 ‘:’换成制表符

awk '{FS=":"}{print $1 "\t $3"}' passwd

实例五

END 所有命令执行完在输出一个命令

awk 'BEGIN{print "hello everyone!!!"}END{print "goodbye!!!"} {print $1 "\t" $2}' info.txt

sed

    sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

[root@www ~]# sed [-nefr] [动作]

选项与参数

-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。

-e :直接在命令列模式上进行 sed 的动作编辑;

-f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作;

-r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)

-i :直接修改读取的文件内容,而不是输出到终端。

动作说明: [n1[,n2]]function

n1, n2 :不见得会存在,一般代表『选择进行动作的行数』,举例来说,如果我的动作是需要在 10 到 20 行之间进行的,则『 10,20[动作行为] 』

function:

a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~

c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!

d :删除,因为是删除,所以 d 后面通常不接任何东西;

i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~

s :取代,可以直接进行取代的工作!通常这个 s 的动作可以搭配正规表示法!例如 s/old/new/g 就是!

例一

查看文件的第二行

sed -n '2p' passwd

cat passwd | sed -n '2p'

例二

删除 第二行到第四行的数据但不修改文件本身

sed  '2,4d' passwd

例三

追加在第二行后面追加hello

sed '2a hello' passwd

例四

在第二行前插入hello

sed '2i hello' passwd

例五

把第一行替换成 hello

sed '1c hello ' passwd

例六

字符串替换

sed ‘s/旧字串/新字串/g ’ 文件名

把第一行的root换成hello

sed '1s/root/hello/g' passwd

例七

把sed操作写入文件

sed -i '1s/root/hello/g' passwd

cat passwd

hello:x:0:0:hello:/hello:/bin/bash

grep

   grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

  Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。

grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。

主要参数

常用用法

例一

将passwd 中,出现root的那一行行显示出来

cat passwd |grep root

例二

将passwd 中,出现root的那一行行显示出来,不显示整行

cat passwd |grep -o root

例三

与范例一相反只要没有‘root’就取出

cat passwd |grep -v root

例四

查看进程,加-v和不加区别

ps -elf | grep nginx 

ps -elf | grep nginx | grep -v "grep" 

例五

统计包含var的行

grep -i "var" passwd|wc -l

例六

显示以a开头的行

cat passwd|grep ^a

例七

显示以a或者g开头的行

cat passwd|grep ^[ag]

例八

显示IP

ip a|grep ens|grep inet

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值