您现在的位置是:首页 > 科技资讯科技资讯

linuxsort(如何用脚本一键获取和监控Linux系统信息和资源使用率)

编辑 2024-06-05 10:30:09 科技资讯

1. linuxsort,如何用脚本一键获取和监控Linux系统信息和资源使用率?

很高兴回答您的问题我是林创云小编,如果我的回答对你有帮助欢迎给我评论留言或者点赞加个关注!

1、利用vmstat工具监控CPU详细信息,然后基于/proc/stat计算CPU利用率进行监控,超过80报警并提取出占用cpu最高的前十进程。

vmstat是Linux系统监控工具,使用vmstat命令可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。

r:运行队列中的进程数;b:等待IO的进程数。

swpd:已用虚拟内存大小(k);free:空闲内存大小;buff:已用缓冲大小;cache:已用缓存大小。

si:每秒从交换区写入内存的大小(kb/s);so:每秒从内存写入交换分区的大小。

bi:每秒读取的块数;bo每秒写入的块数。

in:每秒中断数,包括时钟中断;cs:每秒上下文切换数。

us(user time):用户进程执行消耗cpu时间;sy(system time):系统进程执行消耗cpu时间;id:空闲时间(包括IO等待时间);wa:等待IO时间。

/proc/stat:

这个文件包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。可以利用其中信息计算cpu的利用率。

每行每个参数的意思为(以第一行为例,单位:jiffies,1jiffies=0.01秒):

user(62124):从系统启动开始累计到当前时刻,用户态的CPU时间,不包含 nice值为负进程。

nice(11):从系统启动开始累计到当前时刻。

system(47890):从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间。

idle(8715270):从系统启动开始累计到当前时刻,除硬盘IO等待时间以外其它等待时间。

iowait(84729):从系统启动开始累计到当前时刻,硬盘IO等待时间。

irq(0):从系统启动开始累计到当前时刻,硬中断时间。

softirq(1483):从系统启动开始累计到当前时刻,软中断时间。

CPU时间=user+nice+system+idle+iowait+irq+softirq。

CPU利用率=(idle2-idle1)/(cpu2-cpu1)*100。

ps aux:

显示其他用户启动的进程(a)

查看系统中属于自己的进程(x)

启动这个进程的用户和启动时间 (u)

代码如下:

#!/bin/bash

#

CPU_us=$(vmstat | awk '{print $13}' | sed -n '$p')

CPU_sy=$(vmstat | awk '{print $14}' | sed -n '$p')

CPU_id=$(vmstat | awk '{print $15}' | sed -n '$p')

CPU_wa=$(vmstat | awk '{print $16}' | sed -n '$p')

CPU_st=$(vmstat | awk '{print $17}' | sed -n '$p')

CPU1=`cat /proc/stat | grep 'cpu ' | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8}'`

sleep 5

CPU2=`cat /proc/stat | grep 'cpu ' | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8}'`

IDLE1=`echo $CPU1 | awk '{print $4}'`

IDLE2=`echo $CPU2 | awk '{print $4}'`

CPU1_TOTAL=`echo $CPU1 | awk '{print $1+$2+$3+$4+$5+$6+$7}'`

CPU2_TOTAL=`echo $CPU2 | awk '{print $1+$2+$3+$4+$5+$6+$7}'`

IDLE=`echo "$IDLE2-$IDLE1" | bc`

CPU_TOTAL=`echo "$CPU2_TOTAL-$CPU1_TOTAL" | bc`

#echo -e "IDLE2:$IDLE2/nIDLE1:$IDLE1/nCPU2:$CPU2_TOTAL/nCPU1:$CPU1_TOTAL"

#echo -e "IDLE:$IDLE/nCPU:$CPU_TOTAL"

RATE=`echo "scale=4;($CPU_TOTAL-$IDLE)/$CPU_TOTAL*100" | bc | awk '{printf "%.2f",$1}'`

echo -e "us=$CPU_us/tsy=$CPU_sy/tid=$CPU_id/twa=$CPU_wa/tst=$CPU_st"

echo "CPU_RATE:${RATE}%"

CPU_RATE=`echo $RATE | cut -d. -f1`

#echo "CPU_RATE:$CPU_RATE"

if [ $CPU_RATE -ge 80 ]

then echo "CPU Warn"

ps aux | grep -v USER | sort -rn -k3 | head

fi

执行效果

2、利用free工具监控内存利用率,超过80报警并提取出占用内存最高的前十进程。

代码如下:

#!/bin/bash

#

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

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

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

shared=$(free -m | sed -n '2p' | awk '{print $5}')

buff=$(free -m | sed -n '2p' | awk '{print $6}')

cached=$(free -m | sed -n '2p' | awk '{print $7}')

rate=`echo "scale=2;$used/$total" | bc | awk -F. '{print $2}'`

echo -e "total/tused/tfree/tshared/tbuffer/tavailable"

echo -e "${total}M/t${used}M/t${free}M/t${shared}M/t${buff}M/t${cached}M/nrate:${rate}%"

if [ $rate -ge 80 ]

then echo "Memory Warn"

ps aux | grep -v USER | sort -rn -k4 | head

fi

执行效果

3、利用df命令监控磁盘利用率,超过80报警。

df :显示磁盘分区上的可使用的磁盘空间。

-h 以更易读的方式显示;

-P 使用POSIX的输出格式。

#!/bin/bash

#

DEV=`df -hP | grep '^/dev/*' | cut -d' ' -f1 | sort`

for I in $DEV

do dev=`df -Ph | grep $I | awk '{print $1}'`

size=`df -Ph | grep $I | awk '{print $2}'`

used=`df -Ph | grep $I | awk '{print $3}'`

free=`df -Ph | grep $I | awk '{print $4}'`

rate=`df -Ph | grep $I | awk '{print $5}'`

mount=`df -Ph | grep $I | awk '{print $6}'`

echo -e "$I:/tsize:$size/tused:$used/tfree:$free/trate:$rate/tmount:$mount"

F=`echo $rate | awk -F% '{print $1}'`

if [ $F -ge 80 ];then

echo "$mount Warn"

else echo "It's OK"

fi

done

执行效果

CPU物理信息

查看物理cpu个数:

cat /proc/cpuinfo | grep "physical id" | uniq | wc -l

查看cpu核数:

cat /proc/cpuinfo | grep "cpu cores" | uniq

查看逻辑cpu个数:

cat /proc/cpuinfo | grep "processor" | wc -l

linuxsort(如何用脚本一键获取和监控Linux系统信息和资源使用率)

2. wps里面没有sortby函数?

有啊你没找到吗 DP: 生活的脚步,技术的点滴...  sort命令用法  sort是在Linux里非常常用的一个命令,

3. linux查看cpu个数命令?

我的回答:Linux查看cpu个数,可以分成几种信息:

1.查看CPU型号

cat /proc/cpuinfo|grep "model name"|uniq

比如Intel Xeon CPU E5-2690 v4 代表英特尔至强处理器。

2.查看CPU物理个数:

cat /proc/cpuinfo|grep "physical id"|sort|uniq|wc -l

比如2 就代表两颗物理CPU。

3.查看单个CPU的物理核数:

cat /proc/cpuinfo|grep "cpu cores"|uniq

比如14

就代表一颗物理CPU有14核

查看单颗CPU的逻辑核数:

cat /proc/cpuinfo|grep "siblings"|uniq

比如是28

如果siblings的数量是cpu cores的两倍,证明CPU支持超线程并且开启了超线程技术。

4.查看CPU总的逻辑核数:

cat /proc/cpuinfo|grep "processor"|wc -l

比如56

就代表总的逻辑核心数56。

4. linux里过滤内容的命令?

在Linux中,有多种命令可以用来过滤内容。以下是一些常用的过滤命令:

grep:用于在文件或标准输入中搜索匹配指定模式的行。

示例:grep "pattern" file.txt

awk:用于处理文本文件的工具,可以根据指定的规则对文件进行分析和处理。

示例:awk '/pattern/ {print $0}' file.txt

sed:用于对文本进行流式编辑,可以根据指定的规则对文本进行替换、删除等操作。

示例:sed 's/pattern/replacement/g' file.txt

cut:用于从文件或标准输入中提取指定字段。

示例:cut -d',' -f1 file.txt

sort:用于对文本进行排序。

示例:sort file.txt

uniq:用于去除重复的行。

示例:uniq file.txt

head:用于显示文件的前几行,默认为前10行。

示例:head -n 5 file.txt

tail:用于显示文件的后几行,默认为后10行。

示例:tail -n 5 file.txt

这些命令可以根据您的需求和具体情况进行组合使用,以实现更复杂的内容过滤和处理操作。请注意,以上示例中的"pattern"和"file.txt"需要根据实际情况进行替换

5. linux怎么进入黑色命令行?

我的回答:可以按Ctrl+alt+F2~6

就可以进入命令行模式的黑色界面了。

这个黑色的命令行是Linux的终端,可以输入各种Linux的终端命令。

比较常用的是ls pwd ps awk sed grep tar egrep sort uniq chmod chown find kill crontab at cat more head tail 等命令。

6. linux中的双竖线什么意思?

管道符号,是unix一个很强大的功能,符号为一条竖线:"|"。用法: command

1 | command

2 他的功能是把第一个命令command 1执行的结果作为command 2的输入传给command 2,例如:$ls -s|sort -nr (请注意不要复制$符号进去哦)-s 是file size,-n是numeric-sort,-r是reverse,反转该命令列出当前目录中的文档(含size),并把输出送给sort命令作为输入,sort命令按数字递减的顺序把ls的输出排序。$ls -s|sort -n按从小到大的顺序输出。当然还可进行多次操作,如下面的功能为先去除纯数字,再由sed将竖线(这里不是管道符号)替换为空格,再将结果取出来排序,再进行结果的选择显示,不明白可查看 排序和分页。cat filename |grep -v '^[0-9]*$' | sed 's/|/ /g' |sort -nrk 8 -nrk 9 |tail -n +1 |head -n 10

7. linux系统通过命令行查看cpu信息?

1、首先我们介绍lscpu命令,该条命令可以查看 CPU 和处理单元的信息。没有其他的功能。下面我们执行命令"lscpu",具体输出信息如下图所示。

2、然后我们介绍第2种方式,通过读取/proc/cpuinfo文件进行查看。输入命令"cat /proc/cpuinfo",然后回车,查看cpu整体信息。具体结果如下图所示。

3、当然我们也可以针对某些指标进行查看,比如想查看查看物理CPU个数,我们可以通过命令"cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l"。具体操作如下图所示。

4、假如我们想要查看每个物理CPU中core的个数(即核数),我们可以输入命令"cat /proc/cpuinfo| grep "cpu cores"| uniq"进行查看,具体操作如下图所示。

5、假如我们想要查看逻辑CPU的个数,可以输入命令"cat /proc/cpuinfo| grep "processor"| wc -l"进行查看,具体操作如下图所示。

6、假如我们想要查看cpu的型号,可以输入命令"cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c"进行查看,具体操作如下图所示。

本文标签:

很赞哦! ()

横幅广告