快速业务通道

从PROC文件系统与SYSFS系统获得系统运行时数据

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-03-27

===================
- PROC文件系统介绍
===================

; 显示内存信息,对对应命令: vmstat/free
$ cat /proc/meminfo
$ cat /proc/vmstat
$ cat /proc/vmmemctl

; 显示设备相关信息
$ cat /proc/devices

; 显示磁盘相关信息,第二条命令显示了分区名称,主要设备号与次要设备号,对应命令: fdisk -l
$ cat /proc/diskstats
$ cat /proc/partitions

; 显示启动时间
$ cat /proc/uptime
$ cat /proc/version

; 显示系统中断以及相关信息,用于查看设备所请求的IRQ中断,其中''I8042''为键盘
; 第二个命令显示系统IO所占用的地址范围
; 第三个命令查看系统设备读写的地址空间,编程会用得着
$ cat /proc/interrupts
$ cat /proc/ioports
$ cat /proc/iomem

; 查看CPU信息,查看CPU对指令集的支持
$ cat /proc/cpuinfo | awk ''/flags/''
$ cat /proc/cpuinfo | awk ''/vendor/''
$ cat /proc/cpuinfo | awk ''/MHz/''

; 查看内核所编译的文件系统,即,查看内核所支持的文件系统
$ cat /proc/filesystems

; 查看系统装载的模块,对应命令: lsmod
$ cat /proc/modules

; 查看系统平均负载
$ cat /proc/loadavg
; 查看系统启动命令行,传送到内核的命令行参数
$ cat /proc/cmdline

; 系统调用列表
$ cat /proc/kallsyms


网络
; 显示系统ARP表,"HWADDR"全0表示IP地址未被占用
$ cat /proc/net/arp
; 显示SNMP相关信息,上面一行表示各个字段,下面一行表示值,以下同
$ cat /proc/net/snmp
; 显示接口总流量
$ cat /proc/net/dev
; 显示路由表,注意,这里显示的不是点分10进制,而10完全16进制
$ cat /proc/net/route
; 显示无线相关信息,包含接收到的AP,信号质量等
$ cat /proc/net/wireless

进程<CPU/IO/Fd>
; 基准目录<vw>: /proc/#Pid/
; 查看内存映射表,包括其对动态链接库的引用,堆栈的位置,可以用于故障排除
$ cat $vw/maps
$ cat $vw/smaps
; 查看进程运作状况,如SLEEP参数表明了进程的繁忙程度
$ cat $vw/status
; 查看进程的IO情况,也可以通过此查看进程是否为IO密集型进程
$ cat $vw/io
; 查看进程打开的文件,对对应命令: lsof
$ ls $vw/fd
; 查看进程工作目录
$ ls -l $vw/cwd
; 查看进程可执行文件
$ ls -l $vw/exe
; 查看传入进程的环境变量
$ cat $vw/environ
; 查看传入进程的命令行
$ cat $vw/cmdline | tr "\000" "\n"
; 查看对进程的限制,如打开文件数,运行作业数等
$ cat $vw/limits
; 查看进程锁定的元素
$ cat $vw/locks

设备
; 查看光驱相关信息,注意DRIVENAME,进行挂载时用得着
$ cat /proc/sys/dev/cdrom/info

总线
; 查看PCI总线,对应命令: lspci/setpci
$ cat /proc/bus/pci/devices
; 查看USB总线,对应命令: lsusb
$ cat /proc/bus/usb/devices
; 查看键盘,鼠标,扬声器
$ cat /proc/bus/input/devices
$ cat /proc/bus/input/handler
; 查看SCSI总线
$ cat /proc/scsi/scsi
; 查看SCSI设备
$ cat /proc/scsi/device_info

=====================
* SYS 文件系统
=====================

; 查看网卡原始MAC
$ cat /sys/class/net/ethX/address
; 查看网卡统计数据
$ cat /sys/class/net/ethX/statistics/*
; 查看接口状态
$ cat /sys/class/net/ethX/operstate

举个小例子

这段代码统计在10秒内ETH0接口接收的网络流量,单位是BPS

  1. #!/bin/bash
  2. cd /sys/class/net/eth0/statistics
  3. startRX=`cat rx_bytes`
  4. sleep 10
  5. endRX=`cat rx_bytes`
  6. bytesTotal=`expr $endRX - $startRX`
  7. bps=`expr $bytesTotal ''/'' 10`
  8. echo "The average traffic is RX: ${bps}Bytes/sec"

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号