企业常用Linux三剑客awk及案例/awk底层剖析/淘宝网cdn缓存对象分级存储策略案例/磁盘知识/awk统计与计算-7055字

高薪·思维:
不愿意做的事情:加班,先例自己在利他
生活中先利他人在利自己
感恩,假设别人帮助过你,先帮助别人,感恩境界

awk三剑客老大

find其实也算是一种新的第四剑客

find 查找文件 查找文件,与其他命令配合
grep/egrep 过滤 过滤速度最快
sed 过滤,取行,替换,删除 替换,修改文件内容,取行
awk 过滤,取行,取列,统计计算,判断,循环

awk:是一门编程语言(单行脚本),善于处理大量的文本。

语法格式:
awk option ‘pattern{action}’ file…
awk 参数 ‘条件{动作}’ 文件

核心作用:
1.取列
附加作用是:查,删

参数:
-F 指定字段分隔符

变量名 属性
$0 当前整行记录

$n 当前记录的第n列,字段间由FS或-F参数指定分隔符

NF 当前记录中的列的个数,就是有多少列

$(NF-n) 倒数第n列,n为数字

NR 已经读出的记录数,就是n行号,从1开始

默认的分隔符是空格:第二列是00
11 00 22
第一列 用$1表示
第二列 用$2表示

awk默认的分隔符是空格:

⭐⭐⭐⭐⭐案例 练习打印不同的列

[root@calms ~]# echo “11 00 22” >a.txt
[root@calms ~]# cat a.txt
11 00 22
在这里插入图片描述
在这里插入图片描述

⭐⭐⭐⭐⭐案例 打印多列

在这里插入图片描述

⭐⭐⭐⭐⭐案例 打印整行

在这里插入图片描述

⭐⭐⭐⭐⭐案例打印最后一列

在这里插入图片描述

⭐⭐⭐⭐⭐案例 打印倒数第二列

在这里插入图片描述

-F 指定分隔符
在这里插入图片描述

准备好测试文件,取passwd文件前5行。
[root@calms ~]# sed -n ‘1,5p’ /etc/passwd >test1.txt

⭐⭐⭐⭐⭐案例: 过滤出/etc/passwd文件中包含root或nobody的行

awk ‘/root|nobody/’ /etc/passwd

⭐⭐⭐⭐⭐案例: 使用awk取出ls -lh 的大小列和最后一列

[root@calms ~]# ls -lh /etc/hosts
-rw-r–r--. 1 root root 158 6月 7 2013 /etc/hosts
[root@calms ~]# ls -lh /etc/hosts |awk’{print $5,$9}’
158 /etc/hosts

[root@calms ~]# ls -lh /etc/hosts |awk’{print $ 5,$NF}’
158 /etc/hosts

⭐⭐⭐⭐⭐案例 过滤出日志中密码错误的ip地址.

grep failed secure-20161219 |head |awk ‘{print
$(NF-3)}’

awk输出与对齐:
使用column 命令即可或者使用\t
ll -h |awk ‘{print $5,$9}’|column -t
ll -h |awk ‘{print $5"\t"$9}’

⭐⭐⭐⭐⭐案例: 取出/etc/passwd中的第

1列,第3列和最后一列
awk取列的时候,默认是通过空白字符进行分割的.
空白字符:空格,连续空格,tab键.
但是一些时候使用默认分隔符不够了,需要我们手动指定分隔符,通过-F选项指定.
未来我们想快速取出想要的内容,选择趁手工具(选好分隔符).
选择分隔符建议: 看你目标两边是什么.

awk -F’:’ ‘{print $ 1,$ 3,$NF}’ /etc/passwd|column -t

⭐⭐⭐⭐⭐案例: 指定复杂分隔符取出ip

ip a s eth0 | awk ‘NR = 3’
inet 10.0.0.200/24 brd 10.0.0.255 scope global
noprefixroute eth0

提示: inet前面有4个空格
逐步实现
ip a s eth0 |awk ‘NR=3’|awk ‘{print $2}’|awk -F’/’
‘{print $1}’
遇到空格或/就切一刀,所以4个空格切4刀,ip是第6列

[root@calms ~]# ip a s eth0 | awk ‘NR=3’|awk -F’[ /]’ ‘{print $6}’
10.0.0.200
遇到连续的空格或/就切一刀,所以4个空格切1刀,所以ip是第3列

[root@oldboy-king-v3 ~]# ip a s eth0 | awk ‘NR=3’
|awk -F’ [ / ] +’ ‘{print $3}’
10.0.0.200
其他分隔符取出
ip a s eth0 |awk ‘NR=3’ |awk -F ‘inet |/24’
‘{print $2}’

⭐⭐⭐⭐⭐案例: 取行+取列 取ip地址

awk 选项 ‘条件{动作}’ /etc/passwd
ip a s eth0 | awk -F’[ /]+’ ‘NR=3{print $3}’
10.0.0.200

额外案例: 取出权限部分 stat /etc/hosts的0644部分
stat /etc/hosts | awk -F ‘[/(]’ ‘NR=4{print $2}’
stat /etc/hosts | awk -F ‘[^0-9]+’ ‘NR=4{print
$2}’

⭐⭐⭐⭐⭐案例: 取出/etc/passwd文件中第3列大于大于100的行,取出这行的第1列,第3列和最后一列

awk 选项 ‘条件{动作}’ /etc/passwd
#条件
awk -F’:’ ‘$ =100’ /etc/passwd
4 #条件+动作
5 awk -F’:’ ‘$ 3=100{print $ 1,$ 3,$NF}’ /etc/passwd
|column -t
6 lidao996 1001 /bin/bash
7 nginx 1002 /sbin/nologin

⭐⭐⭐⭐⭐案例: 如果系统swap使用超过0则输出"异常系统开始占用swap"

条件
条件1:过滤出swap
条件2:第3列 使用的数量大于0
动作
输出这句话 ““异常系统开始占用swap””

free |awk ‘/Swap/ = $3 = 0’
Swap: 2097148 0 2097148
free |awk ‘/Swap/ = $3 = 0 {print “异常系统开始占用
swap”}’
异常系统开始占用swap

free |awk 'NR=3 = $3>0 {print “swap占用,系统异常,请
排查”}

awk统计与计算

awk进行统计有2类案例:

  1. 类似于wc -l统计次数.
  2. 进行求和,累加.

统计次数

仅仅需要统计出现了多少次,出现了多少个.可以使用wc -l方式

说明i=i+1 先计算i+1然后把结果存放到i中.
i=i+1 i值 i=i+1值 i计算后的内容
第1行 空/0 i=0+1 i=1
第2行 1 i=1+1 i=2
第3行 2 i=2+1 i=3
i=i+1 计数公式.
awk ‘{i=i+1} END{print i}’ /etc/passwd
26

END{}内容会在awk读取完成文件的时候执行.
END{}一般用于输出执行结果.
i=i+1 = i++
这个案例未来可以搭配awk各种条件进行统计与计算

计算总和

seq 10 > num.txt计算num.txt每一行的数字的总和
awk ‘{i=i+$1}END{print i}’ num.txt
55

分析执行流程

i=i+$1
$1 i i=i+$1 i结果
第1行 1 空 i=0+1 i=1
第2行 2 1 i=1+2 i=3
第3行 3 3 i=3+3 i=6
第4行 4 6 i=6+4 i=10

cut命令(补充)

-d 指定分隔符
-f 数字指定那列,多列可以用逗号或者-
-c按字符取内容

指定冒号为分隔符进行取第一列
[root@calms ~]# cut -d: -f1 /etc/passwd

取多列
[root@calms ~]# cut -d: -f1,3,5 /etc/passwd

取连续的多列(1-3列)
cut -d “:” -f1-3 /etc/passwd

按字符取:
在这里插入图片描述

磁盘知识和内部物理结构介绍

内存:临时存放,断电后丢失
磁盘:永久保存

磁盘作用

存储我们平时工作,学习,生活中的数据
在这里插入图片描述

发展趋势实现措施
体积更小存储密度更高
速度更快读写更灵敏磁头,接口更先进
容量大存储密度更高,介质更好
使用更安全数据保持保护技术

分类

运行方式与原理详细信息
机械硬盘(HHD)电机带动磁盘高速旋转,读取数据,速度可以达到5400,7200rpm(每分钟多少转)(家用)
固态硬盘(SSD)集成电路与芯片,存储芯片

国产硬盘出来之后,现在整体都不贵了
在这里插入图片描述

磁盘知识的体系结构

磁盘的外部结构

机械磁盘的外部结构

sata接口(左边数据,右边电源)
在这里插入图片描述
sas接口
在这里插入图片描述
scsi接口
在这里插入图片描述
ide接口
在这里插入图片描述

SSD固态盘的外部接口

类似于水壶的壶嘴,磁盘的读写速度,不同类型磁盘接口也有不同的读写速度

M2接口
在这里插入图片描述
企业级常用sas/sata硬盘
在这里插入图片描述

所有硬盘都是读大于写
一个盘片2个磁头
一摆盘片3-5个

固态硬盘的内部结构

这一块笔试题会考:

由三大块主控芯片,内存颗粒,缓存单元构成
cpu把数据扔到缓存里面,然后主控芯片把数据慢慢分配到内存颗粒,多个闪存颗粒

缓存硬件应用分析图:
在这里插入图片描述

ssd固态盘内部结构形象图:

磁盘的接口类型

ide磁盘与ide磁盘接口
sata磁盘(串口磁盘)与sata接口
scsi磁盘(已经过时了)与scsi接口(主要用于高端服务器和高档工作)

sas磁盘(是前面两个性能的结合产品)与sas接口
是新一代scsi技术,采用串行接口,与sata磁盘是兼容的

企业生产场景普及程度:sas》ssd》sata 单位容量与对比性能和价格:ssd》sas》sata
单位价格和购买磁盘容量:sata》sas》ssd

sata磁盘与sas磁盘区别

协议方面:sata串行高级技术附件,sas串行scsi
速率方面:sas接口传输速率12GB/S(300-500MB/s),sata:6GB/S(90-150MB/S)

硬盘方面:sas采用玻璃材料基板,常见容量(300,600,900g;1t,1.8t
sata采用铝·材料基板’,常见容量1,2,4,6,8t,它有两种:5400转(笔记本)或7200(企业级)转每分钟

ssd固态磁盘接口信息对比:
在这里插入图片描述

磁盘主要接口及特点:
在这里插入图片描述

ssd固态盘与传统机械硬盘优劣对比:
在这里插入图片描述

生产环境中服务器和磁盘的选型

Dell,hp,ibm等其中Dell是互联网主流的服务器,磁盘主流的服务器市场为sas,sata,ssd硬盘

企业级SAS硬盘

企业级sas硬盘是10000–15000转/分,具体企业需求和性价比考虑,多用于300G,600G,1T的sas硬盘。不要选择的单盘容量很大,除非用于单独纯备份!

做好RAID满足容量底层基础上保持在4块硬盘
用途:提供企业生产线对外提供服务的业务相关服务器(生产线数据业务,存储业务和相关高并发业务,web,http,cache服务)没有特殊的业务需求情况下sas磁盘为生产环境的首选磁盘配置!

单盘容量小,多块盘满足需求

企业中至少三块盘一组:
1.5T 单盘总容量为1.5T,不可以坏一块盘,读速度一块盘速度
6*300Graid5,总容量1.5T,它可以坏一块盘,速度为6块之和,web服务器
5*300G raid0,总容量1.5T,不可以坏一块盘,读速度6块之和,web服务器
10*300G raid0,总容量1.5T,可以坏两块盘,读速度10块之和,数据库服务器,应用服务器(没有单点,集群模式),缺点:维护麻烦

根据需求:性能,成本,冗余度

企业级SATA硬盘

企业级SATA盘(7200转/分),容量1t,2t,4t,8t
优点:便宜,容量大
在工作中做线下不提供服务的数据库存储,并发业务访问小量的应用(站点程序/数据库/线下备份)
特性:容量高,一般2t的SATA磁盘特性

选择SATA理由:1.便宜
2.数据量少,不需要提供用户服务
3.用于备份

SSD固态盘

特点:容量小,价格贵,速度快,用于数据量小且有超大规模高并发业务(另一种方式通过磁盘加内存缓存的技术解决大规模高并发)

数据库适合使用固态盘
taobao ,业务可能根据数据热度来综合使用分层存储,达到性价比最佳。80G SSD+500GSATA
百度腾讯360核心业务会采用SSD磁盘

磁盘选购

线上业务:sas磁盘(常规业务,web服务及应用服务)
线下业务:SATA磁盘(数据库,邮箱,下载–百度云)
线上高并发:(数据库小容量业务,ssd磁盘,数据库服务)
成本控制思想:数据访问热度,智能分析存储SATA+SSD

企业故障案例

不要用SATA磁盘来做在线高并发服务的数据存储或数据库业务!!!

公司采用SATA做数据库存储盘,结果导致数据库连续宕机一个月
5台服务器,一堆SATA盘,raid5
解决:重新购买5台,把SATA(raid5)换成sas(raid10),最后6个月没事
数据库集群
1.主库改选择用sas raid10,从库sas raid0
2.数据库使用的引擎是myisam引擎,改成innodb引擎(更新记录,只锁定当前记录,别的可以改也可以读)

淘宝网cdn缓存对象分级存储策略案例

提出问题:
存储数据时,18kb一下对象数量占总数量达到80%,而其存储量不到40%同时,80%经常被访问对象所占用存储空间不到总量的20%
分析问题:
热点数据(访问频此高的内容)需要更快的性能,而占用的空间并不到,冷数据(访问频次低的内容)所需要的存储很大,对性能要求不需要高
解决问题:
所以服务器引入分层存储机制,单台服务器(实际会多台)的磁盘可由一块80Gb的ssd磁盘和两块500GB的SATA盘组成,然后把“热数据“存放在ssd盘上,冷数据存放在SATA盘,冷热数据可以动态调度,从而进行兼顾性能,容量与成本(分层存储调度软件由淘宝开发)

淘宝的策略是高效低成本方案,云计算运维我们在企业中不可能一直不考虑成本,无限制的提升性能

更多内容关注专栏!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/563138.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux基础03-Linux文件操作命令

其实啊,说起计算机操作,大部分情况下就是“增删改查”这四个大字儿,文件操作也是这么回事儿。 就是改文件的时候得用点专门的编辑器,比如那个Vim。 不过Vim这东西,真心不是一两句话就能给你讲清楚的,咱们在…

socket套接字在tcp客户端与tcp服务器之间的通信,以及socket中常用的高效工具epoll

1.socket(套接字)的概念 Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议,主要利用三元组【ip地址,协议&am…

STM32F1之I2C通信

目录 1. 简介 2. 硬件电路 3. IIC时序基本单元 3.1 发送一个字节 3.2 接收一个字节 3.3 发送应答 3.4 接收应答 1. 简介 I2C(Inter-Integrated Circuit)总线是由NXP Semiconductors(前身为Philips Semiconductor)…

【C++初阶】vector使用特性 vector模拟实现

1.vector的介绍及其使用 1.1 vector的介绍 vector文档介绍 1. vector是表示可变大小数组的序列容器。 2. 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组&#…

浏览器数据找回

网站上分享的文章应该都是个人的心血,对于一些操作问题导致心血丢失真的很奔溃,终于找到一个弥补的办法,csdn的文章谷歌浏览器亲测有效,理论上其他浏览器的其他网站应该也可以,适用以下场景 把博客编辑当成了编写新博…

ELK 日志分析(二)

一、ELK Kibana 部署 1.1 安装Kibana软件包 #上传软件包 kibana-5.5.1-x86_64.rpm 到/opt目录 cd /opt rpm -ivh kibana-5.5.1-x86_64.rpm 1.2 设置 Kibana 的主配置文件 vim /etc/kibana/kibana.yml --2--取消注释,Kiabana 服务的默认监听端口为5601 server.po…

ARM与单片机有啥区别?

初学者必知:ARM与单片机到底有啥区别?1、软件方面这应该是最大的区别了。引入了操作系统。为什么引入操作系统?有什么好处嘛? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「ARM的资料从专业入门到高级教…

如何扛过人生的至暗时刻,获得幸福人生?

人生的至暗时刻是每个人在成长过程中都可能遇到的经历,它们可能包括失去亲人、失业、健康问题、情感破裂或其他形式的个人危机。在这些时刻,我们可能会感到绝望、孤独和无助。然而,正是在这些挑战中,我们也有机会学习如何变得更坚…

VUE运行找不到pinia模块

当我们的VUE运行时报错Module not found: Error: Cant resolve pinia in时 当我们出现这个错误时 可能是 没有pinia模块 此时我们之要下载一下这个模块就可以了 npm install pinia

同旺科技 USB TO SPI / I2C适配器读写24LC128--读写

所需设备: 1、USB 转 SPI I2C 适配器;内附链接 2、24LC128芯片; 适应于同旺科技 USB TO SPI / I2C适配器专业版; 专业版配套软件更新; 直接读取HEX文件,自动完成文件解析; 支持芯片&#xf…

【编程Tool】VS code安装与使用配置保姆级教程

目录 1.软件介绍 2.软件下载: 3.安装 3.1. 双击可执行文件 3.2. 同意协议 3.3. 选择安装路径,默认在C盘 3.4. 点击下一步 3.5. 可选择所有附加任务 3.6. 点击安装 3.7. 等待安装 3.8. 点击完成 3.9. 安装成功 4.下载MinGW64 4.1. MinGW-64下载地址 &…

《深入浅出.NET框架设计与实现》笔记2——C#源码从编写到执行的流程

中间语言(Intermediate Language,IL) C#编译器在编译时,会将源代码作为输入,并以中间语言形式输入出,该代码保存在*.exe文件中或*.dll文件中。 公共语言运行时(CLR) 可以将IL代码…

控制与估计的融合 —— 自抗扰控制

一、自抗扰控制—控制与估计融合 控制理论中的控制与估计是互为对偶的概念,二者在系统控制过程中相辅相成,共同实现了对系统状态的精确管理和优化控制。自抗扰控制(Adaptive Disturbance Rejection Control, ADRC)技术是将控制与…

天星金融(原小米金融)履行社会责任,提高社保政策知晓度

二十大报告指出“为民造福是立党为公、执政为民的本质要求“,人民幸福安康是推动高质量发展的最终目的。社会保障作为维护社会公平、增进人民福祉的基本制度,既是“安全网”也是“稳定器”,发挥着改善民生的重要作用。为进一步提升人民群众对…

230基于matlab的布谷鸟(COA)多目标优化算法

基于matlab的布谷鸟(COA)多目标优化算法,以 满意度、成本、时间、质量为目标的多目标优化求解代码。程序已调通,可直接运行。 230 matlab 布谷鸟(COA)多目标优化 - 小红书 (xiaohongshu.com)

使用spring boot集成shardingsphere分库分表简易测试

根据如下pom整上一个spring-boot项目&#xff0c;spring-boot版本用2.3.5&#xff0c;shardingsphere用5.1.1。 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://ww…

Jolt Json转换工具的基础教程

Jolt Json转换工具 jolt是一个轻量级的json文件转换库&#xff0c;可以把输入的json按照你编写脚本模板输出成你想要的json文本&#xff0c;能实现同样功能的有我们常用的velocity模板引擎&#xff0c;但jolt跟轻量且更专注于json&#xff0c;且在实现一些简单的格式转换中&am…

怎么样零代码零成本搭建个人网站

先申明 为了避免有标题党的嫌疑&#xff0c;这里先做申明。 标题中说的零代码指的是借助VuePress 通过简单配置&#xff0c;帮助我们生成静态网站。 零成本指的是借助GitHub Pages 或者Gitee Pages 部署VuePress生成的静态网站。让互联网上的小伙伴访问到我们的个人网站。 …

基础知识集合

https://blog.csdn.net/sheng_q/category_10901984.html?spm1001.2014.3001.5482 字节流&#xff1a;面向字节的io流&#xff0c;音频 图片 歌曲 byteArray/stringbuffer/file/piped/sequence /filter/data/buffer缓冲/lineNumber/pushedbackInputStream byte/file/piped/…

第十二届蓝桥杯C/C++ B组 杨辉三角形(二分查找+思维)

3418. 杨辉三角形 - AcWing题库 题目描述: 思路&#xff1a; 从上图片中&#xff0c;我们可以看出来这是一个对称图形&#xff0c;所以我们只看左半部分就可以了&#xff0c;我们一行一列去做数据量是1e9这样会很麻烦&#xff0c;所以我们这里做一个思想转换&#xff0c;斜着…