Linux中,很多很全面显示系统当前运行状态,负载,I/O等信息的工具,帮助管理员实时了解系统运行动态,以及排除故障。
ps命令:显示进程状态,快照方式显示。
进程分为两类:一类是用户通过终端启动的进程,一类是与终端无关的进程,多为守护进程。
ps命令支持两种风格的命令:SysV风格 BDS风格。带横线的是SysV风格。
ps命令选项: a :与终端有关的进程 x : 与终端无关的进程 u : 显示是哪个用户启动的 -e : 显示所有进程 -f :完整格式列表显示信息 -F :显示额外信息 -H :显示进程层次结构 -o :自定义显示信息 #ps aux | more USER PID %CPU %MEM VSZ RSS TTY STAT START TIMECOMMAND root 1 0.0 0.1 19356 1544 ? Ss 17:00 0:02/sbin/init root 2 0.0 0.0 0 0? S 17:00 0:00[kthreadd] …… USER: 进程相关用户 PID: 进程号 %CPU: CPU占用百分比 %MEM: 内存占用百分比 VSZ: 占用虚拟内存大小 RSS: 常驻内存集,不可被交换的内存 TTY: 与哪个终端相关 STAT: 进程状态 R:运行状态 S:可中断睡眠 D:不可中断睡眠 T:停止的 Z:僵尸进程 s:会话首进程 +:前台进程 l: 多线程进程 N:低优先级进程 <: 高优先级进程 START:启动运行时间 TIME; 运行时长 COMMAND:由哪个命令启动的此进程,如果COMMAND包含在方括号中,则表示是内核进程 #ps -ef | more UID PID PPID C STIME TTY TIME CMD root 1 0 0 17:00 ? 00:00:02 /sbin/init root 2 0 0 17:00 ? 00:00:00 [kthreadd] PPID:父进程 STIME:启动时间 TIME: 执行累计时间 自定义显示信息 #ps axo pid,command PID COMMAND 1 /sbin/init 2 [kthreadd] 3 [migration/0] 4 [ksoftirqd/0] …… 查看httpd进程是否启动,可以使用grep命令拼接。‘ #ps -ef | grep httpd root 1746 1 0 17:00 ? 00:00:01 /usr/sbin/httpd apache 1753 1746 0 17:00 ? 00:00:00 /usr/sbin/httpd
pgrep命令:检查在系统的中活动进程
pgrep命令参数 -U UID:指定用户启动的进程 -G GID:指定组相关的进程 -t: 显示终端相关的进程 -l: 同时显示进程号和程序名 #pgrep -U dhcpd 1638
top命令:是Linux下的分析工具,实时监控系统性能资源占用情况
# top top - 21:42:26 up 4:42, 3 users, load average: 0.00, 0.00, 0.00 Tasks: 170 total, 1 running, 169 sleeping, 0stopped, 0 zombie Cpu(s): 0.2%us, 0.3%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1016320ktotal, 666004k used, 350316k free, 41344k buffers Swap: 2097144ktotal, 0k used, 2097144k free, 365124k cached
第一行:系统负载
第二行:进程信息
第三行:CPU使用百分比
第四行:内存信息
htop命令:
需要自己手动安装rpm包或者源码包,CentOS6.5的系统光盘里是没有的。
命令行选项 -C:使用一个单色的配色方案 -d:设置延迟更新时间,单位秒 -h:显示htop 命令帮助信息 -u:只显示一个给定的用户的过程 -p:只显示给定的PIDs -s:依此列来排序 -v:显示版本信息 例如: # htop -d 1 就会1秒刷新1次。 # htop -v htop 1.0.1 - (C) 2004-2011 Hisham Muhammad Released under the GNU GPL. 交互式命令: u: 交互式选择显示指定用户的进程 l: 显示光标所在进程所打开的文件列表 s: 显示光标所在进程执行的系统调用 a: 绑定进程到指定的CPU #:快速定位光标至PID为#的进程上
vmstat:虚拟内存状态信息
iftop:流量监控工具
命令选项 -i:指定要监控的网卡设备名 -B:以bytes为单位显示流量 -n:不显示主机名而是显示IP地址 -N:说是默认显示端口,我也始终没看明白怎么用(don'tconvert port numbers to services) -F:指定显示某网段的流量
dstat:全能型监控工具
-c:显示cpu统计数据 -d: 显示磁盘数据 -g: 显示page的统计数据 -i: 显示中断的数据 -m:显示内存 -s: 交换内存 -p: 显示进程队列 --ipc:显示进程间消息队列,信号量和共享内存的使用情况 -DDISK:只显示指定disk的统计数据 -y: 系统状态数据 -n: 显示网络接口 -Neth0:仅显示指定网络接口的使用情况 -f:以完整格式显示所有信息 网络连接状态统计,例如 dstat --tcp --tcp --udp --raw --unix
补:检查了下有部分解释被logo遮住了,解释如下。
CPU使用百分比被遮住部分:用户空间占用CPU百分比。
dstat命令被遮住部分:磁盘读/写实时频率。
总结:Linux常用监控工具很多,扫描端口的,捕获数据流量包的,命令多少会使用一些,但是出来的结果根本看不懂,只是提一下几个命令。
nmap:扫描开方端口的工具。
nc ncat:左右感觉和nmap差不多。
tcpdump:分析流量数据包工具。