Jesse's home


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

收集占用内存的进程(包括子进程)

发表于 2018-06-12 | 分类于 Linux-Basic , shell&shell脚本 |

收集占用内存的进程(包括子进程)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/bin/bash

file=/home/work/processors.log


total_Mem=$(free -m|awk '{print $2}'|sed -n '2p')
used_Mem=$(free -m | awk '{print $3}' | sed -n '2p')

#内存使用率
usedPerMemory=$(awk 'BEGIN{printf "%.0f",('$used_Mem'/'$total_Mem')*100}')

#如果内存使用率大于等于90
if [ $usedPerMemory -ge 90 ];then

# 收集占用内存最高的top20个进程,包括子进程
processor=$(ps aux | sort -k4nr | head -20 | awk '{print $NF}' | uniq -c)

echo "#######$(date +%F\ %T)########" > $file

echo "当前内存使用率: $usedPerMemory%" >> $file

echo "当前使用内存top20进程: " >> $file

echo "$processor" >> $file

# 计算进程(包括子进程)实际占用的物理内存量


#对每个进程,计算其(包括其子进程)占用的物理内存

for PerProcessor in $(ps aux | sort -k4nr | head -20 | awk '{print $NF}' | uniq);do

# 获取每个进程的PID

ProPid=$(ps aux | grep $PerProcessor | grep -v grep| awk '{print $2}')

#计算该进程(包括子进程)消耗的物理内存总量

total_mem_each_pro=$(for pid in $ProPid; do cat /proc/$pid/smaps; done | awk '/Pss/ {mem += $2} END {print mem, "kB"}')

#下面这条语句也可以计算出进程(包括子进程)占用的物理内存总量
# ps aux | grep $PerProcessor | grep -v grep | awk '{sum += $6} END{print sum}'

echo " $PerProcessor takes $total_mem_each_pro memory " >> $file

done

#将文件内容发送到邮箱
mail -s "hsq-cron占用内存过高" huangyong@doweidu.com < $file

fi
fi

文本工具介绍

发表于 2018-06-12 | 分类于 Linux-Basic , 文本处理 |

常见文本工具使用


管道命令介绍


1.管道|后面必须紧接一个命令.
2.管道命令仅仅会处理标准输出的内容,对于错误输出的不能处理
3.管道命令必须能够接收前一个命令输入的信息(standard input),比如less,more,head,tail.而ls,cp,mv则不行
4.管道命令必须能够处理前一个命令执行后的结果,

阅读全文 »

AWK介绍

发表于 2018-06-12 | 分类于 Linux-Basic , 文本处理 |

AWK

简介

1.概念
2.基础格式
3.输出,格式化输出
4.awk操作符
5.awk变量
6.awk模式
7.控制语句
8.数组
9.经典例子

概念

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。

阅读全文 »

Sed介绍

发表于 2018-06-12 | 分类于 Linux-Basic , 文本处理 |

sed

  • 概念:

    Stream EDitor 流编辑器.sed以行为单位,纯文字符的行编辑器

sed:默认情况下不编辑原文件,而是提取需要处理的行到内存的模式空间去编辑,并且显示出来.

  • sed 格式:

    sed [options] ‘ AddressCommand’ file #sed [选项] ‘处理的地址块-命令’ 文件

地址块和命令之间没有空格

  • 地址块有下面几种方法定义:
阅读全文 »

正则表达式-语法介绍

发表于 2018-06-12 | 分类于 Linux-Basic , 正则表达式 |

正则表达式 - 语法介绍

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。

正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为”元字符”)组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

阅读全文 »

正则表达式分类

发表于 2018-06-12 | 分类于 Linux-Basic , 正则表达式 |

正则表达式分类

正则表达式分为三类(man grep可以看到,分别是basic RegExs,extended RegExs,perl RegExs)

一、正则表达式分类:

1、基本的正则表达式(Basic Regular Expression 又叫 Basic RegEx 简称 BREs)

2、扩展的正则表达式(Extended Regular Expression 又叫 Extended RegEx 简称 EREs)

3、Perl 的正则表达式(Perl Regular Expression 又叫 Perl RegEx 简称 PREs)

阅读全文 »

正则表达式练习

发表于 2018-06-12 | 分类于 Linux-Basic , 正则表达式 |

练习文本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
"Open Source" is a good mechanism to develop programs.
apple is my favorite food.
Football game is not use feet only.
this dress doesn't fit me.
However, this dress is about $ 3183 dollars.
GNU is free air not free beer.
Her hair is very beauty.
I can't finish the test.
Oh! The soup taste good.
motorcycle is cheap than car.
This window is clear.
the symbol '*' is represented as start.
Oh!My god!
The gd software is a library for drafting programs.
You are the best is mean you are the no. 1.
The world <Happy> is the same with "glad".
I like dog.
google is the best tools for search keyword.
goooooogle yes!
go! go! Let's go.
# I am VBird
阅读全文 »

DHCP process

发表于 2018-06-12 | 分类于 Network , Switch |

How does DHCP work

Lab Topology

dhcp

阅读全文 »

BGP  Concept

发表于 2018-06-12 | 分类于 Network , Route , BGP |

BGP Concept

1.概念

BGP(border gateway protocol)边界网关路由协议。

内部网关路由协议(IGP):这种协议用在自治系统内部,比如RIP,EIGRP,OSPF,ISIS,这些都术语IGP。IGP并不是一种路由协议,而是内部网关路由协议的统称。

外部网关路由协议(EGP):BGP属于外部网关路由协议。

自治系统是个16位的数字,取值范围是1-65535.其中64512-65535保留给私用,类似于私有地址。

BGP是路径矢量路由协议,不要求采用像OSPF和ISIS那样的层次化网络设计。根据路径矢量属性来选择最优路径。

BGP是唯一一种使用TCP作为传输层协议的IP路由协议。端口号是179.OSPF和EIGRP直接运行在IP层之上,IS-IS位于网络层,RIP使用UDP传输。因为TCP是一对一的传输协议,所以BGP不使用广播或者组播更新,建立邻居也是neighbor指定的邻居路由器,而不是发送组播hello包与所有邻居路由器建立邻接关系。

BGP没有HELLO包,取而代之的是发送KEEPALIVE消息,没有周期性更新,只有触发更新。

内部BGP(IBGP)管理距离是200.外部BGP(EBGP)管理距离是20

和IGP一样,BGP也是采用下一跳的逐跳路由协议,只不过IGP路由协议是以下一台路由器作为下一跳,但是BGP的下一跳是以AS号自治系统为单位,一个自治系统内部可能包含非常多的路由器。BGP下一跳的地址是下一个AS号的入口接口IP。也就邻居路由器的IP.

BGP路由有一个路径列表,记录了这条路由经过的所有AS号,BGP路由器不会接受路径列表中包含其AS号的路由选择更新,这种机制也被称为BGP的水平分割原则,用来防环


阅读全文 »
1…2021
Jesse

Jesse

求知若饥,虚心若愚.

209 日志
44 分类
41 标签
RSS
© Tue Jun 12 2018 08:00:00 GMT+0800 (GMT+08:00) — 2021 Jesse