赞
踩
grep是一个在Unix和Unix-like系统上使用的命令行工具,用于在文本文件中搜索匹配指定模式的行。它的名字来自于"global regular expression print"(全局正则表达式打印)的缩写。grep的基本用法是通过指定一个正则表达式模式和一个文件名(或者从标准输入读取数据),来查找和打印与模式匹配的行。它可以用于简单的文本搜索,也可以与其他命令结合使用来实现更复杂的操作。Linux管道(Pipeline)是一种将多个命令连接在一起形成一个处理数据流的方法。通过管道,一个命令的输出可以直接作为另一个命令的输入,实现数据的连续处理,提高命令行的灵活性和效率。当在两个命令之间设置管道时,管道符|左边命令的输出就变成了右边命令的输入。只要第一个命令向标准输出写入,而第二个命令是从标准输入读取,那么这两个命令就可以形成一个管道。大部分的 Linux 命令都可以用来形成管道。举个例子:
history |grep "find"
awk是一种强大的文本处理工具,用于从文本文件中提取和处理数据。它以逐行方式扫描文件,并根据指定的规则执行操作。
这将打印文件中每行的第一列和第三列:
awk '{print $1, $3}' file
选项参数 | 功能 |
---|---|
-F | 指定输入文件分隔符 |
-v | 赋值一个用户定义变量 |
cut的工作就是剪,具体的说就是在文件中负责剪数据用的。cut命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出。
选项参数 | 功能 |
---|---|
-f | 列号,提取第几列 |
-d | 分隔符,按照指定分割符分割列 |
IP=`ifconfig | grep inet | grep -vE 'inet6|127.0.0.1' | awk '{print $2}'`
echo "IP地址:"$IP
cpu_num=`grep -c "model name" /proc/cpuinfo`
echo "cpu总核数:"$cpu_num
top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。
# 获取用户空间占用CPU百分比
cpu_user=`top -b -n 1 | grep Cpu | awk '{print $2}'`
echo "用户空间占用CPU百分比:"$cpu_user
# 获取内核空间占用CPU百分比
cpu_system=`top -b -n 1 | grep Cpu | awk '{print $4}'`
echo "内核空间占用CPU百分比:"$cpu_system
# 获取空闲CPU百分比
cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $8}'`
echo "空闲CPU百分比:"$cpu_idle
# 获取等待输入输出占CPU百分比
cpu_iowait=`top -b -n 1 | grep Cpu | awk '{print $10}'`
echo "等待输入输出占CPU百分比:"$cpu_iowait
这是vmstat命令的输出结果,它显示了系统的各种指标,包括进程、内存、交换空间、IO、系统和CPU利用率等。以下是各列的含义:
procs:进程统计信息
memory:内存统计信息
swap:交换空间统计信息
io:IO统计信息
system:系统统计信息
cpu:CPU统计信息
# 获取CPU中断次数
cpu_interrupt=`vmstat -n 1 1 | sed -n 3p | awk '{print $11}'`
echo "CPU中断次数:"$cpu_interrupt
# 获取CPU上下文切换次数
cpu_context_switch=`vmstat -n 1 1 | sed -n 3p | awk '{print $12}'`
echo "CPU上下文切换次数:"$cpu_context_switch
# 获取任务队列(就绪状态等待的进程数)
cpu_task_length=`vmstat -n 1 1 | sed -n 3p | awk '{print $1}'`
echo "CPU任务队列长度:"$cpu_task_length
uptime命令显示了系统的运行时间以及系统的平均负载(load average)。
输出解释如下:
# 获取CPU15分钟前到现在的负载平均值
cpu_load_15min=`uptime | awk '{print $10}'`
echo "CPU 15分钟前到现在的负载平均值:"$cpu_load_15min
# 获取CPU5分钟前到现在的负载平均值
cpu_load_5min=`uptime | awk '{print $9}' | cut -f 1 -d ','`
echo "CPU 5分钟前到现在的负载平均值:"$cpu_load_5min
# 获取CPU1分钟前到现在的负载平均值
cpu_load_1min=`uptime | awk '{print $8}' | cut -f 1 -d ','`
echo "CPU 1分钟前到现在的负载平均值:"$cpu_load_1min
# 获取物理内存总量
mem_total=`free | grep "内存" | awk '{print $2}'`
echo "物理内存总量:"$mem_total
# 获取操作系统已使用内存总量
mem_sys_used=`free | grep "内存" | awk '{print $3}'`
echo "已使用内存总量(操作系统):"$mem_sys_used
# 获取操作系统未使用内存总量
mem_sys_free=`free | grep "内存" | awk '{print $4}'`
echo "剩余内存总量(操作系统):"$mem_sys_free
iostat命令用于显示CPU使用情况和磁盘I/O统计信息。如果没有指定选项或参数,iostat将显示所有活动的设备的平均统计信息,包括CPU利用率、设备的传输速率、请求队列长度等。
echo "指定设备(/dev/sda)的统计信息" # 每秒向设备发起的读请求次数 disk_sda_rs=`iostat -kx | grep sda| awk '{print $2}'` echo "每秒向设备发起的读请求次数:"$disk_sda_rs # 每秒向设备发起的写请求次数 disk_sda_ws=`iostat -kx | grep sda| awk '{print $8}'` echo "每秒向设备发起的写请求次数:"$disk_sda_ws # 向设备发起的I/O请求队列长度平均值 disk_sda_avgqu_sz=`iostat -kx | grep sda| awk '{print $22}'` echo "向设备发起的I/O请求队列长度平均值"$disk_sda_avgqu_sz # 向设备发起I/O请求的CPU时间百分占比 disk_sda_util=`iostat -kx | grep sda| awk '{print $23}'` echo "向设备发起I/O请求的CPU时间百分占比:"$disk_sda_util
#!/bin/bash # 获取要监控的本地服务器IP地址 IP=`ifconfig | grep inet | grep -vE 'inet6|127.0.0.1' | awk '{print $2}'` echo "IP地址:"$IP # 获取cpu总核数 cpu_num=`grep -c "model name" /proc/cpuinfo` echo "cpu总核数:"$cpu_num # 1、获取CPU利用率 # 获取用户空间占用CPU百分比 cpu_user=`top -b -n 1 | grep Cpu | awk '{print $2}'` echo "用户空间占用CPU百分比:"$cpu_user # 获取内核空间占用CPU百分比 cpu_system=`top -b -n 1 | grep Cpu | awk '{print $4}'` echo "内核空间占用CPU百分比:"$cpu_system # 获取空闲CPU百分比 cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $8}'` echo "空闲CPU百分比:"$cpu_idle # 获取等待输入输出占CPU百分比 cpu_iowait=`top -b -n 1 | grep Cpu | awk '{print $10}'` echo "等待输入输出占CPU百分比:"$cpu_iowait #2、获取CPU上下文切换和中断次数 # 获取CPU中断次数 cpu_interrupt=`vmstat -n 1 1 | sed -n 3p | awk '{print $11}'` echo "CPU中断次数:"$cpu_interrupt # 获取CPU上下文切换次数 cpu_context_switch=`vmstat -n 1 1 | sed -n 3p | awk '{print $12}'` echo "CPU上下文切换次数:"$cpu_context_switch #3、获取CPU负载信息 # 获取CPU15分钟前到现在的负载平均值 cpu_load_15min=`uptime | awk '{print $10}'` echo "CPU 15分钟前到现在的负载平均值:"$cpu_load_15min # 获取CPU5分钟前到现在的负载平均值 cpu_load_5min=`uptime | awk '{print $9}' | cut -f 1 -d ','` echo "CPU 5分钟前到现在的负载平均值:"$cpu_load_5min # 获取CPU1分钟前到现在的负载平均值 cpu_load_1min=`uptime | awk '{print $8}' | cut -f 1 -d ','` echo "CPU 1分钟前到现在的负载平均值:"$cpu_load_1min # 获取任务队列(就绪状态等待的进程数) cpu_task_length=`vmstat -n 1 1 | sed -n 3p | awk '{print $1}'` echo "CPU任务队列长度:"$cpu_task_length #4、获取内存信息 # 获取物理内存总量 mem_total=`free | grep "内存" | awk '{print $2}'` echo "物理内存总量:"$mem_total # 获取操作系统已使用内存总量 mem_sys_used=`free | grep "内存" | awk '{print $3}'` echo "已使用内存总量(操作系统):"$mem_sys_used # 获取操作系统未使用内存总量 mem_sys_free=`free | grep "内存" | awk '{print $4}'` echo "剩余内存总量(操作系统):"$mem_sys_free #5、获取磁盘I/O统计信息 echo "指定设备(/dev/sda)的统计信息" # 每秒向设备发起的读请求次数 disk_sda_rs=`iostat -kx | grep sda| awk '{print $2}'` echo "每秒向设备发起的读请求次数:"$disk_sda_rs # 每秒向设备发起的写请求次数 disk_sda_ws=`iostat -kx | grep sda| awk '{print $8}'` echo "每秒向设备发起的写请求次数:"$disk_sda_ws # 向设备发起的I/O请求队列长度平均值 disk_sda_avgqu_sz=`iostat -kx | grep sda| awk '{print $22}'` echo "向设备发起的I/O请求队列长度平均值"$disk_sda_avgqu_sz # 向设备发起I/O请求的CPU时间百分占比 disk_sda_util=`iostat -kx | grep sda| awk '{print $23}'` echo "向设备发起I/O请求的CPU时间百分占比:"$disk_sda_util
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。