Linux 监控系统常用的命令(linux监控软件有哪些)
nanshan 2024-10-09 13:01 10 浏览 0 评论
1. w查看当前系统的负载
> # w
10:42:31 up 1 day, 12:40, 2 users, load average: 0.00, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/2 47.52.88.209 10:27 0.00s 0.00s 0.00s w
root pts/3 47.52.88.209 10:27 14:49 0.91s 0.91s top
第一行从左面开始显示的信息依次为:时间, 系统运行时间, 登录用户数, 平均负载。
第二行开始以及下面所有的行, 告诉我们的信息是, 当前登录的都有哪些用户, 以及他们是从哪里登录的等等。
load average 第一个数值表示1分钟内系统的平均负载值;第二个数值表示5分钟内系统的平均负载值;第三个数值表示15分钟系统的平均负载值。这个值的意义是, 单位时间段内CPU活动进程数。
当然这个值越大就说明你的服务器压力越大。一般情况下这个值只要不超过服务器的cpu数量就没有关系, 如果服务器cpu数量为8, 那么这个值若小于8, 就说明当前服务器没有压力, 否则就要关注一下了。
说明:
10:42:31 表示执行W命令的时间
up 1 day, 12:40 表示系统运行了多长时间
2 users 表示当前系统登录4个用户
load average: 0.00, 0.01, 0.00表示系统在过去1, 5, 10分钟内的负载程度, 数值越小, 系统负载越轻
USER:登录用户名
TTY: 登录后系统分配的终端号
FROM:远程主机名, 从哪登录的
LOGIN@:何时登录
IDLE:用户空闲时间
JCPU:和该终端连接的所有进程占用时间(包括正在运行的后台作业占用的时间)
PCPU:当前进程所占用时间
WHAT:当前正在运行进程的命令行
2 查看CPU信息
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 63
model name : Intel(R) Xeon(R) CPU E5-26xx v3
stepping : 2
microcode : 1
cpu MHz : 2299.998
cache size : 4096 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good unfair_spinlock pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm xsaveopt avx2
bogomips : 4599.99
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 63
model name : Intel(R) Xeon(R) CPU E5-26xx v3
stepping : 2
microcode : 1
cpu MHz : 2299.998
cache size : 4096 KB
physical id : 1
siblings : 1
core id : 0
cpu cores : 1
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good unfair_spinlock pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm xsaveopt avx2
bogomips : 4599.99
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
计算cpu核心数
grep -c 'processor' /proc/cpuinfo #用grep -c来统计匹配的行数
> # grep -c 'processor' /proc/cpuinfo
2
3 vmstat 监控系统的状态
> # vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 340652 303528 796332 0 0 3 31 1 1 1 1 98 0 0
上面讲的 w 查看的是系统整体上的负载, 通过看那个数值可以知道当前系统有没有压力, 但是具体是哪里(CPU, 内存,磁盘等)有压力就无法判断了。
通过 vmstat 就可以知道具体是哪里有压力。vmstat命令打印的结果共分为6部分:procs, memory, swap, io, system, cpu, 请重点关注一下r b si so bi bo几列。
1)procs 显示进程相关信息
r:表示运行和等待cpu时间片的进程数, 如果长期大于服务器cpu的个数, 则说明cpu不够用了;
b:表示等待资源的进程数, 比如等待I/O, 内存等, 这列的值如果长时间大于1, 则需要关注一下了;
2)memory 内存相关信息
swpd:表示切换到交换分区中的内存数量 ;
free:当前空闲的内存数量;
buff:缓冲大小, (即将写入磁盘的);
cache:缓存大小, (从磁盘中读取的);
3)swap 内存交换情况
si :由交换区写入到内存的数据量;
so :由内存写入到交换区的数据量;
4)io 磁盘使用情况
bi :从块设备读取数据的量(读磁盘);
bo: 从块设备写入数据的量(写磁盘);
5)system 显示采集间隔内发生的中断次数
in:表示在某一时间间隔中观测到的每秒设备中断数;
cs:表示每秒产生的上下文切换次数;
6)CPU 显示cpu的使用状态
us:显示了用户下所花费 cpu 时间的百分比;
sy:显示系统花费cpu时间百分比;
id:表示cpu处于空闲状态的时间百分比;
wa:表示I/O等待所占用cpu时间百分比;
st:表示被偷走的cpu所占百分比(一般都为0, 不用关注);
以上所介绍的各个参数中, 阿铭经常会关注r列, b列, 和wa列, 三列代表的含义在上边说得已经很清楚。IO部分的bi以及bo也是要经常参考的对象。如果磁盘io压力很大时, 这两列的数值会比较高。
另外当si, so两列的数值比较高, 并且在不断变化时, 说明内存不够了, 内存中的数据频繁交换到交换分区中, 这往往对系统性能影响极大, 以上涉及的数据库单位为KB。
我们使用 vmstat 查看系统状态的时候, 通常都是使用这样的形式来看的:
> # vmstat 1 5
或者:
> # vmstat 1
前面表示, 每隔一秒钟打印一次状态, 共打印5次, 而后面的表示每隔1秒打印一次状态, 一直打印, 除非我们按 Ctrl + c 结束
4. top 显示进程所占系统资源
> # top
top - 16:31:49 up 4:42, 3 users, load average: 0.02, 0.05, 0.00
Tasks: 74 total, 1 running, 73 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.4%us, 7.8%sy, 0.0%ni, 89.2%id, 1.0%wa, 0.3%hi, 0.3%si, 0.0%st
Mem: 326616k total, 321172k used, 5444k free, 23664k buffers
Swap: 2097144k total, 588k used, 2096556k free, 227416k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11194 root 20 0 43936 36m 1128 S 3.8 11.3 2:38.95 perl
5373 root 20 0 2572 1072 860 R 0.6 0.3 0:00.05 top
24160 root 20 0 12412 2124 1376 S 0.3 0.7 0:01.12 sshd
1 root 20 0 2900 800 652 S 0.0 0.2 0:01.52 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
这个命令用于动态监控进程所占系统资源, 每隔3秒变一次。这个命令的特点是把占用系统资源(CPU, 内存, 磁盘IO等)最高的进程放到最前面。
top命令打印出了很多信息, 包括系统负载(loadaverage)、进程数(Tasks)、cpu使用情况、内存使用情况以及交换分区使用情况。
其实上面这些内容可以通过其他命令来查看, 所以用top重点查看的还是下面的进程使用系统资源详细状况。
RES 这一项为进程所占内存大小, 而 %MEM 为使用内存百分比。在 top 状态下, 按 "shift + m", 可以按照内存使用大小排序。按数字 '1' 可以列出各颗cpu的使用状态。
top -bn1 它表示非动态打印系统资源使用情况, 可以用在shell脚本中:
> # top -bn1
top - 16:44:12 up 4:54, 3 users, load average: 0.54, 0.18, 0.05
Tasks: 78 total, 1 running, 77 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.4%us, 3.3%sy, 0.0%ni, 93.3%id, 1.4%wa, 0.1%hi, 0.5%si, 0.0%st
Mem: 326616k total, 318672k used, 7944k free, 62704k buffers
Swap: 2097144k total, 588k used, 2096556k free, 177848k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7236 root 20 0 2936 1220 624 D 7.8 0.4 0:03.22 ls
7237 root 20 0 2568 956 760 R 1.9 0.3 0:00.03 top
1 root 20 0 2900 800 652 S 0.0 0.2 0:01.52 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 0:11.08 ksoftirqd/0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
6 root RT 0 0 0 0 S 0.0 0.0 0:00.94 watchdog/0
7 root 20 0 0 0 0 S 0.0 0.0 0:04.38 events/0
和 top 命令唯一的区别就是, 它一次性全部把所有信息输出出来而非动态显示。
第一行:系统运行时间和平均负载
当前时间、系统已运行时间、当前登录用户的数量、最近5、10、15分钟内的平均负载
第二行:任务
任务的总数、运行中(running)的任务、休眠(sleeping)中的任务、停止(stopped)的任务、僵尸状态(zombie)的任务
第三行:cpu状态
字段 字段释义
us user: 运行(未调整优先级的) 用户进程的CPU时间
sy system: 运行内核进程的CPU时间
ni niced:运行已调整优先级的用户进程的CPU时间
id idle:空闲时间
wa IO wait: 用于等待IO完成的CPU时间
hi 处理硬件中断的CPU时间
si 处理软件中断的CPU时间
st 这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)
第四行:内存
全部可用内存、已使用内存、空闲内存、缓冲内存
第五行:swap
全部、已使用、空闲和缓冲交换空间
第七行至N行:各进程任务的的状态监控
字段 释义
PID 进程ID,进程的唯一标识符
USER 进程所有者的实际用户名
PR 进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态。
NI 进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
VIRT virtual memory usage 虚拟内存,进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
1、进程"需要的"虚拟内存大小, 包括进程使用的库、代码、数据等
2、假如进程申请100m的内存, 但实际只使用了10m, 那么它会增长100m, 而不是实际的使用量
RES resident memory usage 常驻内存,驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小, 单位kb。RES=CODE+DATA
1、进程当前使用的内存大小, 但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存, 实际使用10m, 它只增长10m, 与VIRT相反
4、关于库占用内存的情况, 它只统计加载的库文件所占内存大小
SHR shared memory 共享内存
1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后, 它将会降下来
S 这个是进程的状态。它有以下不同的值:
D - 不可中断的睡眠态。
R – 运行态
S – 睡眠态
T – 被跟踪或已停止
Z – 僵尸态
%CPU 自从上一次更新时到现在任务所使用的CPU时间百分比。%CPU显示的是进程占用一个核的百分比, 而不是整个cpu(N核)的百分比, 有时候可能大于100, 那是因为该进程启用了多线程占用了多个核心, 所以有时候我们看该值得时候会超过100%, 但不会超过总核数*100
%MEM 进程使用的可用物理内存百分比
TIME+ 任务启动后到现在所使用的全部CPU时间,精确到百分之一秒
COMMAND 运行进程所使用的命令。进程名称(命令名/命令行)
5. sar监控系统状态
sar 命令很强大, 它可以监控系统所有资源状态, 比如平均负载、网卡流量、磁盘状态、内存使用等等。它不同于其他系统状态监控工具的地方在于, 它可以打印历史信息, 可以显示当天从零点开始到当前时刻的系统状态信息。
如果你系统没有安装这个命令, 请使用 yum install -y sysstat 命令安装。初次使用sar命令会报错, 那是因为sar工具还没有生成相应的数据库文件(时时监控就不会了, 因为不用去查询那个库文件)。
它的数据库文件在 "/var/log/sa/" 目录下, 默认保存一个月。
> # sar -n DEV
Linux 2.6.32-642.6.2.el6.x86_64 (VM_228_47_centos) 01/15/2018 _x86_64_ (1 CPU)
11:50:01 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
12:00:01 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:00:01 PM eth0 114.61 66.55 127.00 11.02 0.00 0.00 0.00
12:10:01 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
12:10:01 PM eth0 212.11 108.50 273.42 10.55 0.00 0.00 0.00
12:20:01 PM lo 0.02 0.02 0.00 0.00 0.00 0.00 0.00
12:20:01 PM eth0 57.78 43.32 53.55 4.95 0.00 0.00 0.00
Average: lo 0.01 0.01 0.00 0.00 0.00 0.00 0.00
Average: eth0 128.19 72.80 151.35 8.84 0.00 0.00 0.00
IFACE这列表示设备名称, rxpck/s 表示每秒进入收取的包的数量, txpck/s 表示每秒发送出去的包的数量, rxbyt/s 表示每秒收取的数据量(单位Byte), txbyt/s表示每秒发送的数据量。后面几列不需要关注。
如果有一天你所管理的服务器丢包非常严重, 那么你就应该看一看这个网卡流量是否异常了, 如果rxpck/s 那一列的数值大于4000, 或者rxbyt/s那列大于5,000,000则很有可能是被攻击了, 正常的服务器网卡流量不会高于这么多,
除非是你自己在拷贝数据。
上面的命令是查看网卡流量历史的, 如何时时查看网卡流量呢?
> # sar -n DEV 1 5
2) 查看历史负载 sar -q
> # sar -q
Linux 2.6.32-642.6.2.el6.x86_64 (VM_228_47_centos) 01/15/2018 _x86_64_ (1 CPU)
11:50:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
12:00:01 PM 3 156 0.93 0.37 0.15
12:10:01 PM 0 178 0.67 0.84 0.52
12:20:01 PM 0 180 0.04 0.18 0.32
12:30:01 PM 0 182 0.01 0.02 0.16
12:40:01 PM 0 184 0.00 0.02 0.08
12:50:01 PM 0 182 0.05 0.09 0.08
01:00:01 PM 0 182 0.00 0.00 0.03
01:10:01 PM 1 184 0.00 0.01 0.00
01:20:01 PM 0 184 0.01 0.01 0.00
01:30:01 PM 0 182 0.00 0.00 0.00
01:40:01 PM 0 182 0.03 0.04 0.00
01:50:01 PM 0 182 0.00 0.01 0.00
02:00:01 PM 2 188 0.00 0.00 0.00
02:10:01 PM 0 184 0.00 0.02 0.00
02:20:01 PM 0 184 0.10 0.03 0.01
02:30:01 PM 0 182 0.00 0.01 0.00
02:40:01 PM 0 184 0.00 0.00 0.00
02:50:01 PM 1 185 0.00 0.00 0.00
Average: 0 181 0.10 0.09 0.07
6. free查看内存使用状况
> # free
total used free shared buffers cached
Mem: 326616 137332 189284 0 34480 73336
-/+ buffers/cache: 29516 297100
Swap: 2097144 1144 2096000
只需要敲一个 free 然后回车就可以当前系统的总内存大小以及使用内存的情况。从上例中可看到当前系统内存总大小为326616(单位是k)已经使用137332, 剩余189284, 其实真正剩余并不是这个189284,
而是第二行的297100, 真正使用的也是第二行的29516, 这是因为系统初始化时, 就已经分配出很大一部分内存给缓存, 这部分缓存用来随时提供给程序使用, 如果程序不用, 那这部分内存就空闲。
所以, 查看内存使用多少, 剩余多少请看第二行的数据。另外我们还可以加-m 或者-g选项分别以M或G为单位打印内存使用状况。
> # free -h
total used free shared buffers cached
Mem: 996M 888M 108M 928K 59M 537M
-/+ buffers/cache: 291M 704M
Swap: 399M 2.2M 397M
7. ps 查看系统进程
在linux下呢? 其实在上面介绍的top命令就可以, 但是不容易看, 当然还有专门显示系统进程的命令
> # ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 19364 1180 ? Ss Jan13 0:00 /sbin/init
root 2 0.0 0.0 0 0 ? S Jan13 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Jan13 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S Jan13 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S Jan13 0:00 [stopper/0]
root 6 0.0 0.0 0 0 ? S Jan13 0:00 [watchdog/0]
root 7 0.0 0.0 0 0 ? S Jan13 0:28 [events/0]
root 8 0.0 0.0 0 0 ? S Jan13 0:00 [events/0]
root 9 0.0 0.0 0 0 ? S Jan13 0:00 [events_long/0]
root 10 0.0 0.0 0 0 ? S Jan13 0:00 [events_power_ef]
root 11 0.0 0.0 0 0 ? S Jan13 0:00 [cgroup]
root 12 0.0 0.0 0 0 ? S Jan13 0:00 [khelper]
root 13 0.0 0.0 0 0 ? S Jan13 0:00 [netns]
root 14 0.0 0.0 0 0 ? S Jan13 0:00 [async/mgr]
root 15 0.0 0.0 0 0 ? S Jan13 0:00 [pm]
root 16 0.0 0.0 0 0 ? S Jan13 0:00 [sync_supers]
root 17 0.0 0.0 0 0 ? S Jan13 0:00 [bdi-default]
root 18 0.0 0.0 0 0 ? S Jan13 0:00 [kintegrityd/0]
root 19 0.0 0.0 0 0 ? S Jan13 0:01 [kblockd/0]
root 20 0.0 0.0 0 0 ? S Jan13 0:00 [kacpid]
root 21 0.0 0.0 0 0 ? S Jan13 0:00 [kacpi_notify]
root 22 0.0 0.0 0 0 ? S Jan13 0:00 [kacpi_hotplug]
root 23 0.0 0.0 0 0 ? S Jan13 0:00 [ata_aux]
root 24 0.0 0.0 0 0 ? S Jan13 0:00 [ata_sff/0]
root 25 0.0 0.0 0 0 ? S Jan13 0:00 [ksuspend_usbd]
root 26 0.0 0.0 0 0 ? S Jan13 0:00 [khubd]
root 27 0.0 0.0 0 0 ? S Jan13 0:00 [kseriod]
root 28 0.0 0.0 0 0 ? S Jan13 0:00 [md/0]
root 29 0.0 0.0 0 0 ? S Jan13 0:00 [md_misc/0]
root 30 0.0 0.0 0 0 ? S Jan13 0:00 [linkwatch]
root 33 0.0 0.0 0 0 ? S Jan13 0:00 [khungtaskd]
root 34 0.0 0.0 0 0 ? S Jan13 0:00 [kswapd0]
root 35 0.0 0.0 0 0 ? SN Jan13 0:00 [ksmd]
root 36 0.0 0.0 0 0 ? SN Jan13 0:00 [khugepaged]
root 37 0.0 0.0 0 0 ? S Jan13 0:00 [aio/0]
root 38 0.0 0.0 0 0 ? S Jan13 0:00 [crypto/0]
root 45 0.0 0.0 0 0 ? S Jan13 0:00 [kthrotld/0]
root 47 0.0 0.0 0 0 ? S Jan13 0:00 [kpsmoused]
root 48 0.0 0.0 0 0 ? S Jan13 0:00 [usbhid_resumer]
root 49 0.0 0.0 0 0 ? S Jan13 0:00 [deferwq]
root 81 0.0 0.0 0 0 ? S Jan13 0:00 [kdmremove]
root 82 0.0 0.0 0 0 ? S Jan13 0:00 [kstriped]
root 223 0.0 0.0 0 0 ? S Jan13 0:00 [scsi_eh_0]
root 226 0.0 0.0 0 0 ? S Jan13 0:00 [scsi_eh_1]
root 252 0.0 0.0 0 0 ? S Jan13 0:00 [virtio-blk]
root 354 0.0 0.0 0 0 ? S Jan13 0:03 [kjournald]
root 442 0.0 0.0 10780 672 ? S<s Jan13 0:00 /sbin/udevd -d
root 537 0.0 0.0 0 0 ? S Jan13 0:00 [virtio-net]
root 550 0.0 0.0 0 0 ? S Jan13 0:00 [vballoon]
root 746 0.0 0.0 0 0 ? S Jan13 0:00 [kauditd]
root 749 0.0 0.0 4076 512 ttyS0 Ss+ Jan13 0:00 agetty -h -L -w /dev
root 877 0.0 0.0 0 0 ? S Jan13 0:01 [flush-252:0]
root 934 0.0 0.0 93156 776 ? S<sl Jan13 0:05 auditd
root 956 0.0 0.1 251192 1768 ? Sl Jan13 0:00 /sbin/rsyslogd -i /v
dbus 978 0.0 0.0 21436 384 ? Ss Jan13 0:00 dbus-daemon --system
root 1016 0.0 0.0 4080 512 ? Ss Jan13 0:00 /usr/sbin/acpid
root 1153 0.0 0.1 80900 1696 ? Ss Jan13 0:00 /usr/libexec/postfix
postfix 1167 0.0 0.2 81152 2068 ? S Jan13 0:00 qmgr -l -t fifo -u
root 1190 0.0 0.1 86188 1820 ? Ss Jan13 0:00 /usr/sbin/abrtd
root 1217 0.0 0.0 21108 488 ? Ss Jan13 0:00 /usr/sbin/atd
root 1261 0.0 0.1 98664 1564 ? Sl Jan13 0:00 /usr/local/qcloud/st
root 1361 0.0 0.3 72912 3376 ? Ss 12:09 0:00 nginx: master proces
root 1487 0.0 1.0 55792 10296 ? S Jan13 0:01 barad_agent
root 1493 0.0 1.0 62104 11088 ? S Jan13 1:16 barad_agent
root 1495 0.2 1.1 442172 12016 ? Sl Jan13 5:01 barad_agent
root 1528 0.0 1.1 646540 11516 ? Ssl Jan13 1:41 /usr/local/qcloud/Yu
root 1547 0.0 0.1 102028 1520 ? Ssl Jan13 0:20 /usr/local/qcloud/Yu
root 1566 0.0 0.0 4064 580 tty1 Ss+ Jan13 0:00 /sbin/mingetty /dev/
root 1568 0.0 0.0 4064 576 tty2 Ss+ Jan13 0:00 /sbin/mingetty /dev/
root 1569 0.1 0.3 100204 3280 ? Ss 10:27 0:31 sshd: root@pts/2,pts
root 1570 0.0 0.0 4064 576 tty3 Ss+ Jan13 0:00 /sbin/mingetty /dev/
root 1574 0.0 0.0 10776 532 ? S< Jan13 0:00 /sbin/udevd -d
root 1575 0.0 0.0 10776 532 ? S< Jan13 0:00 /sbin/udevd -d
root 1576 0.0 0.0 4064 576 tty4 Ss+ Jan13 0:00 /sbin/mingetty /dev/
root 1578 0.0 0.0 4064 572 tty5 Ss+ Jan13 0:00 /sbin/mingetty /dev/
root 1580 0.0 0.0 4064 576 tty6 Ss+ Jan13 0:00 /sbin/mingetty /dev/
root 1584 0.0 0.2 100008 2724 ? Ss 10:27 0:00 sshd: root@notty
root 1591 0.0 0.1 108316 1828 pts/2 Ss 10:27 0:00 -bash
root 1629 0.0 0.1 108316 1756 pts/3 Ss 10:27 0:00 -bash
root 1642 0.1 0.1 15164 1436 pts/3 S+ 10:27 0:19 top
root 1648 0.0 0.1 57252 1572 ? Ss 10:27 0:00 /usr/libexec/openssh
root 1664 0.0 0.2 100008 2784 ? Ss 10:27 0:00 sshd: root@notty
root 1700 0.0 0.1 57252 1568 ? Ss 10:27 0:00 /usr/libexec/openssh
root 1728 0.0 0.1 57252 1556 ? Ss 10:27 0:00 /usr/libexec/openssh
root 1744 0.0 0.1 57252 1560 ? Ss 10:27 0:00 /usr/libexec/openssh
root 1750 0.0 0.1 57252 1560 ? Ss 10:27 0:00 /usr/libexec/openssh
root 1772 0.0 0.1 57252 1560 ? Ss 10:27 0:00 /usr/libexec/openssh
root 1791 0.0 0.1 57252 1564 ? Ss 10:27 0:00 /usr/libexec/openssh
root 2758 0.0 0.2 100008 2728 ? Ss Jan14 0:00 sshd: root@notty
root 2826 0.0 0.1 57252 1568 ? Ss Jan14 0:00 /usr/libexec/openssh
root 2831 0.0 0.2 100008 2788 ? Ss Jan14 0:00 sshd: root@notty
root 2852 0.0 0.1 57252 1576 ? Ss Jan14 0:00 /usr/libexec/openssh
root 2886 0.0 0.1 57252 1556 ? Ss Jan14 0:00 /usr/libexec/openssh
root 2897 0.0 0.1 57252 1560 ? Ss Jan14 0:00 /usr/libexec/openssh
root 2913 0.0 0.1 57252 1560 ? Ss Jan14 0:00 /usr/libexec/openssh
root 2918 0.0 0.1 57252 1564 ? Ss Jan14 0:00 /usr/libexec/openssh
root 2928 0.0 0.1 57252 1564 ? Ss Jan14 0:00 /usr/libexec/openssh
root 3821 0.0 0.1 11440 1556 pts/2 S 12:09 0:00 /bin/sh /www/server/
mysql 4328 0.0 3.2 588664 33560 pts/2 Sl 12:09 0:04 /www/server/mysql/bi
root 5095 0.0 0.1 116880 1288 ? Ss 11:54 0:00 crond
root 5456 0.0 3.0 878920 31504 pts/2 Sl 11:55 0:07 python main.pyc 8888
root 5494 0.0 1.3 355836 13776 pts/2 Sl 11:55 0:01 python task.pyc
postfix 5892 0.0 0.3 80984 3448 ? S 14:03 0:00 pickup -l -t fifo -u
root 9793 0.0 0.2 100008 2724 ? Ss Jan14 0:00 sshd: root@notty
root 9872 0.0 0.1 57252 1704 ? Ss Jan14 0:00 /usr/libexec/openssh
root 10960 0.0 0.1 66240 1228 ? Ss 12:00 0:00 /usr/sbin/sshd
root 11478 0.0 0.2 138684 2160 ? Ss 12:10 0:00 pure-ftpd (SERVER)
smmsp 11595 0.0 0.2 78264 2140 ? Ss 12:01 0:00 sendmail: Queue runn
root 17970 0.0 0.4 198048 4880 ? Ss 12:11 0:00 php-fpm: master proc
www 17972 0.0 0.9 200828 10140 ? S 12:11 0:00 php-fpm: pool www
www 17973 0.0 1.0 200832 10428 ? S 12:11 0:00 php-fpm: pool www
www 17974 0.0 1.0 202904 10656 ? S 12:11 0:00 php-fpm: pool www
www 17975 0.0 1.4 205344 15296 ? S 12:11 0:01 php-fpm: pool www
www 17976 0.0 1.0 202936 10700 ? S 12:11 0:00 php-fpm: pool www
root 20708 0.0 0.2 100008 2724 ? Ss Jan14 0:00 sshd: root@notty
root 20786 0.0 0.1 57252 1576 ? Ss Jan14 0:00 /usr/libexec/openssh
root 20808 0.0 0.2 100008 2788 ? Ss Jan14 0:00 sshd: root@notty
root 20845 0.0 0.1 57252 1576 ? Ss Jan14 0:00 /usr/libexec/openssh
root 20862 0.0 0.1 57252 1560 ? Ss Jan14 0:00 /usr/libexec/openssh
root 20872 0.0 0.1 57252 1564 ? Ss Jan14 0:00 /usr/libexec/openssh
root 20888 0.0 0.1 57252 1556 ? Ss Jan14 0:00 /usr/libexec/openssh
root 20922 0.0 0.1 57252 1560 ? Ss Jan14 0:00 /usr/libexec/openssh
root 20932 0.0 0.1 57252 1560 ? Ss Jan14 0:00 /usr/libexec/openssh
root 24608 0.0 0.1 110252 1168 pts/2 R+ 15:10 0:00 ps aux
root 26233 0.0 0.2 100008 2724 ? Ss 08:24 0:00 sshd: root@notty
root 26311 0.0 0.1 57252 1708 ? Ss 08:24 0:00 /usr/libexec/openssh
root 26321 0.0 0.2 100008 2788 ? Ss 08:24 0:00 sshd: root@notty
root 26383 0.0 0.1 57252 1568 ? Ss 08:24 0:00 /usr/libexec/openssh
root 26418 0.0 0.1 57252 1564 ? Ss 08:24 0:00 /usr/libexec/openssh
root 26428 0.0 0.1 57252 1556 ? Ss 08:24 0:00 /usr/libexec/openssh
root 26451 0.0 0.1 57252 1564 ? Ss 08:24 0:00 /usr/libexec/openssh
root 26468 0.0 0.1 57252 1560 ? Ss 08:24 0:00 /usr/libexec/openssh
root 26490 0.0 0.1 57252 1560 ? Ss 08:24 0:00 /usr/libexec/openssh
www 29826 0.0 2.3 94124 24124 ? S 12:27 0:00 nginx: worker proces
www 29827 0.0 0.2 72912 2220 ? S 12:27 0:00 nginx: cache manager
www 30621 0.0 1.0 201056 10900 ? S 12:28 0:00 php-fpm: pool www
PID:进程的id, 这个id很有用, 在linux中内核管理进程就得靠pid来识别和管理某一个程, 比如我想终止某一个进程, 则用 kill 进程的pid 有时并不能杀掉, 则需要加一个-9选项了kill -9 进程pid
STAT:表示进程的状态, 进程状态分为以下几种(不要求记住, 但要了解)
D 不能中断的进程(通常为IO)
R 正在运行中的进程
S 已经中断的进程, 通常情况下, 系统中大部分进程都是这个状态
T 已经停止或者暂停的进程, 如果我们正在运行一个命令, 比如说 sleep 10 如果我们按一下ctrl -z 让他暂停, 那么我们用ps查看就会显示T这个状态
W 这个好像是说, 从内核2.6xx 以后, 表示为没有足够的内存页分配
X 已经死掉的进程(这个好像从来不会出现)
Z 僵尸进程, 杀不掉, 打不死的垃圾进程, 占系统一小点资源, 不过没有关系。如果太多, 就有问题了。一般不会出现。
< 高优先级进程
N 低优先级进程
L 在内存中被锁了内存分页
s 主进程
l 多线程进程
+ 代表在前台运行的进程
> # ps -A | grep nginx
PID TTY TIME CMD
1361 ? 00:00:00 nginx
29826 ? 00:00:00 nginx
29827 ? 00:00:00 nginx
PID: 就是这个程序的 ID
TIME: 该进程实际使用的CPU时间。
TTY: 登入者的终端机位置
CMD: 所下达的是什么指令
> # ps -ef | grep php
USER PID PPID C STIME TTY TIME CMD
root 1187 1180 0 Oct10 ? 00:00:00 /bin/sh -c /usr/local/php/bin/php /data/wwwroot/default/admin/cli/checkChartList.php >/dev/null 2>&1
root 1191 1187 0 Oct10 ? 00:01:06 /usr/local/php/bin/php /data/wwwroot/default/admin/cli/checkChartList.php
说明:
USER: 程序被该 USER 所拥有
PID:就是这个程序的 ID
PPID: 则是其上级父程序的ID
C:CPU使用的资源百分比(%CPU)
STIME: 系统启动时间
TTY: 登入者的终端机位置
TIME: 该进程实际使用的CPU时间。
CMD: 所下达的是什么指令
> # ps -aux | grep svnserve
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 29102 0.0 0.0 156540 760 ? Ss 16:08 0:00 svnserve -d -r /var/svn/svnrepos
root 32511 0.0 0.0 103312 876 pts/0 S+ 16:12 0:00 grep svnserve
其中29102 为进程号
说明:
USER: 程序被该 USER 所拥有、
PID: 就是这个程序的 ID
%CPU:CPU使用的资源百分比
%MEM: 内存使用的资源百分比
VSZ: 进程使用的虚拟內存量(KB)
RSS: 该进程占用的固定內存量(KB)
TTY: 该进程在那个终端上运行(登录者的终端位置), 若与终端无关, 则显示(?)。
tty[1-6] 就是你用ctr+alt+f[1-6]所看到的那个终端(本机登录者), 即虚拟控制台。其他的是外部终端和网络终端。
pts/*为伪(虚拟)终端(远程登入者执行的程序), 其中pts/0,1,2在桌面Linux中是标准输入, 标准输出, 标准出错。
STAT: 进程状态
D 不可中断睡眠 (通常是在IO操作) 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生
R 正在运行或可运行(在运行队列排队中)
S 可中断睡眠 (休眠中, 受阻, 在等待某个条件的形成或接受到信号)
T 已停止的 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行
W 正在换页(2.6.内核之前有效)
X 死进程 (未开启)
Z 僵尸进程 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放BSD风格的
< 高优先级(not nice to other users)
N 低优先级(nice to other users)
L 页面锁定在内存(实时和定制的IO)
s 一个信息头
l 多线程(使用 CLONE_THREAD, 像NPTL的pthreads的那样)
+ 在前台进程组
START:该进程被触发启动时间
TIME: 该进程实际使用的CPU时间。
CMD: 所下达的是什么指令
8. netstat 查看网络状况
> # netstat -lnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 4328/mysqld
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1361/nginx
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 11478/pure-ftpd (SE
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 10960/sshd
tcp 0 0 0.0.0.0:888 0.0.0.0:* LISTEN 1361/nginx
tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 5456/python
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1153/master
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ACC ] STREAM LISTENING 1052654 4328/mysqld /tmp/mysql.sock
unix 2 [ ACC ] STREAM LISTENING 1067378 17970/php-fpm /tmp/php-cgi-54.sock
unix 2 [ ACC ] STREAM LISTENING 8295 978/dbus-daemon /var/run/dbus/system_bus_socket
unix 2 [ ACC ] STREAM LISTENING 6965 1/init @/com/ubuntu/upstart
unix 2 [ ACC ] STREAM LISTENING 8679 1153/master public/cleanup
unix 2 [ ACC ] STREAM LISTENING 8686 1153/master private/tlsmgr
unix 2 [ ACC ] STREAM LISTENING 8690 1153/master private/rewrite
unix 2 [ ACC ] STREAM LISTENING 8694 1153/master private/bounce
unix 2 [ ACC ] STREAM LISTENING 8698 1153/master private/defer
unix 2 [ ACC ] STREAM LISTENING 8702 1153/master private/trace
unix 2 [ ACC ] STREAM LISTENING 8706 1153/master private/verify
unix 2 [ ACC ] STREAM LISTENING 8711 1153/master public/flush
unix 2 [ ACC ] STREAM LISTENING 8715 1153/master private/proxymap
unix 2 [ ACC ] STREAM LISTENING 8719 1153/master private/proxywrite
unix 2 [ ACC ] STREAM LISTENING 8723 1153/master private/smtp
unix 2 [ ACC ] STREAM LISTENING 8727 1153/master private/relay
unix 2 [ ACC ] STREAM LISTENING 8731 1153/master public/showq
unix 2 [ ACC ] STREAM LISTENING 8735 1153/master private/error
unix 2 [ ACC ] STREAM LISTENING 8739 1153/master private/retry
unix 2 [ ACC ] STREAM LISTENING 8743 1153/master private/discard
unix 2 [ ACC ] STREAM LISTENING 8747 1153/master private/local
unix 2 [ ACC ] STREAM LISTENING 8751 1153/master private/virtual
unix 2 [ ACC ] STREAM LISTENING 8755 1153/master private/lmtp
unix 2 [ ACC ] STREAM LISTENING 8759 1153/master private/anvil
unix 2 [ ACC ] STREAM LISTENING 8763 1153/master private/scache
unix 2 [ ACC ] STREAM LISTENING 8837 1190/abrtd /var/run/abrt/abrt.socket
unix 2 [ ACC ] STREAM LISTENING 8383 1016/acpid /var/run/acpid.socket
检查端口是否启动状况
netstat -lnp | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1361/nginx
9 抓包工具tcpdump
有时候, 也许你会有这样的需求, 想看一下某个网卡上都有哪些数据包, 尤其是当你初步判定你的服务器上有流量攻击。这时, 使用抓包工具来抓一下数据包, 就可以知道有哪些IP在攻击你了。
> # tcpdump -nn -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
19:13:56.689147 IP 10.72.137.159.22 > 10.72.137.53.50827: Flags [P.], seq 2793829986:2793830182, ack 1384443306, win 1067, length 196
19:13:56.691389 IP 10.72.137.159.22 > 10.72.137.53.50827: Flags [P.], seq 196:376, ack 1, win 1067, length 180
19:13:56.691541 IP 10.72.137.53.50827 > 10.72.137.159.22: Flags [.], ack 376, win 16266, length 0
19:13:56.694499 IP 10.72.137.159.22 > 10.72.137.53.50827: Flags [P.], seq 376:636, ack 1, win 1067, length 260
19:13:56.695659 IP 10.72.137.159.22 > 10.72.137.53.50827: Flags [P.], seq 636:800, ack 1, win 1067, length 164
19:13:56.695793 IP 10.72.137.53.50827 > 10.72.137.159.22: Flags [.], ack 800, win 16160, length 0
19:13:56.698429 IP 10.72.137.159.22 > 10.72.137.53.50827: Flags [P.], seq 800:1060, ack 1, win 1067, length 260
19:13:56.700332 IP 10.72.137.159.22 > 10.72.137.53.50827: Flags [P.], seq 1060:1224, ack 1, win 1067, length 164
19:13:56.700419 IP 10.72.137.53.50827 > 10.72.137.159.22: Flags [.], ack 1224, win 16425, length 0
如果没有tcpdump 这个命令, 需要用 yum install -y tcpdump 命令去安装一下。
上例中第三列和第四列显示的信息为哪一个IP+port在连接哪一个IP+port, 后面的信息是该数据包的相关信息, 如果不懂也没有关系, 毕竟我们不是专门搞网络的, 而这里需要关注的只是第三列以及第四列。
-i 选项后面跟设备名称, 如果你想抓eth1网卡的包, 后面则要跟eth1.至于-nn选项的作用是让第三列和第四列显示成IP+端口号的形式, 如果不加-nn则显示的是主机名+服务名称。
相关推荐
- Linux下C++访问web—使用libcurl库调用http接口发送解析json数据
-
一、背景这两天由于一些原因研究了研究如何在客户端C++代码中调用web服务端接口,需要访问url,并传入json数据,拿到返回值,并解析。 现在的情形是远程服务端的接口参数和返回类型都是json的字符...
- 干货 | 这 3 个超经典的Linux实战项目,让你分分钟入门Linux系统
-
编译安装nginx搭建小游戏网站编译安装流程下载nginx代码wget-P/server/tools/http:nginx.org/download/nginx1.22.0.tar.gz解压并进...
- 权限管理-树莓派linux⑦
-
前言当你在看这篇README,我感到非常荣幸。作为支持开源、分享的理念的我,给大家带来一些学习上的乐趣。由于本人并非专业的教育领域人士,很多时候天马行空,随心所欲的表达方式,可能让部分人感到不适。请根...
- 每天Linux学习:linux文件属性
-
ls-lih先通过这个命令来观察(-l列表显示目录内容详细,-i第一列显示inode,-h将文件大小显示为我们常见的kb,mb等单位)从截图中我们能看出文件属性由这9列信息组成:第1列:inod...
- Linux ln、unlink命令用法
-
ln命令可以用来创建软链接或硬链接。1.创建软链接:ln-s源文件目标文件例如:ln-s/usr/lib/libc.so/usr/local/lib/libc.so.6这样就创建了一...
- Linux 系统启动完整流程
-
一、启动系统流程简介如上图,简述系统启动的大概流程:1:硬件引导UEFi或BIOS初始化,运行POST开机自检2:grub2引导阶段系统固件会从MBR中读取启动加载器,然后将控制权交给启动加载器GRU...
- 最火的 CI/CD 平台 Jenkins 详细搭建教程(for Linux)
-
在正式学习Jenkins之前我们需要对两个名词有一定了解,其一是DevOps,另外一个就是CI/CD。何为DevOps?来自wiki百科介绍DevOps是一系列软件开发实践,强调开发人员(Dev)和测...
- hadoop集群搭建详细方法
-
第一步:搭建配置新的虚拟机格式化之前先把tmp目录下所有与Hadoop有关的信息全部删除rm-rf/tmp/hadoop-centos*开启之后jps只有Java的进程:sudovi/et...
- Linux 常用命令集合
-
系统信息arch显示机器的处理器架构(1)uname-m显示机器的处理器架构(2)uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件-(SMBIOS/DM...
- inode文件索引,你了解嘛?你的Linux基础真的扎实嘛?
-
一、inode是什么?深入了解inode,就要从文件存储说起来!文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节。读取硬盘的时候,不会一个个扇区地读取,这样效率...
- linux实例之创建service服务
-
前面我们讲过可以通过service命令来启动,重启,停止指定的服务程序。service服务可以在系统启动时,自动运行该服务,我们可以利用这一特点,创建service文件,并且让系统重启时,自动执行命令...
- linux之软连接和硬连接的区别
-
硬连接硬链接是通过索引节点进行的链接。在Linux中,多个文件指向同一个索引节点是允许的,像这样的链接就是硬链接。硬链接只能在同一文件系统中的文件之间进行链接,不能对目录进行创建。如果删除硬链接对应的...
- Linux inode 详解
-
简介索引节点(IndexNode)是Linux/类unix系统文件系统上的一种数据结构,用于存储有关文件或目录的元数据。它包含文件的所有信息,除了文件名和数据。inode在文件系统如何存储和检...
- Bash 脚本实例:获取符号链接的目标位置
-
我们都熟悉Linux中的符号链接,通常称为符号链接或软链接,符号链接是指向任何文件系统中的另一个文件或目录的特定文件。本文将介绍Linux中符号链接的基础知识,并创建一个简单的bash脚本...
- windows快捷方式,符号链接,软链接和硬链接
-
当一个软件大量的向C盘写入数据,而我们又无法修改软件保存数据的位置时,可以使用windows系统的“符号链接”(SymbolicLink)功能,将保存数据的位置修改到其它分区中。符号链接类似于我们熟...
你 发表评论:
欢迎- 一周热门
-
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
WindowsServer2022|配置NTP服务器的命令
-
WIN11 安装配置 linux 子系统 Ubuntu 图形界面 桌面系统
-
解决Linux终端中“-bash: nano: command not found”问题
-
NBA 2K25虚拟内存不足/爆内存/内存占用100% 一文速解
-
K3s禁用Service Load Balancer,解决获取浏览器IP不正确问题
-
Linux 中的文件描述符是什么?(linux 打开文件表 文件描述符)
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)