嵌入式Linux系统上提取有用的系统信息
来源:互联网 发布:手机淘宝怎么登录不了 编辑:程序博客网 时间:2024/05/16 16:01
下面的脚本可以一次性获取嵌入式Linux系统上有用的系统信息,包括网络信息,存储信息,环境信息等等。
它同时支持周期性运行,可以用于系统监测,比如检查内存泄露等。
注:由于我用的busybox中的top不支持-n 选项,因此使用了后台运行,一定时间后再杀死top进程的办法。
top 命令如果支持-n 选项就非常简单了。
使用方法:
$ sysinfo.sh -h
usage: sysinfo.sh [options]
show system information.
Without option, it will show all information.
options:
-c <count> : show how many times.
-d: show disk information.
-e: show environment.
-g: show general information.
-i <interval>: show information every <interval> seconds.
-m: show memory information.
-n: show network information.
-p: show process information.
-r: show release information.
-h: show help
#!/bin/shtrap my_exit SIGINT#---------------------------- variables --------------------------------------------------PROG_NAME=`basename $0`SHOW_GENERAL=0SHOW_DISK=0SHOW_ENV=0SHOW_MEM=0SHOW_NET=0SHOW_PROC=0INTERVAL=-1ALWAYS_LOOP=0COUNT=-1INDEX=1NOT_SHOW_ALL=0#---------------------------- functions --------------------------------------------------my_exit(){killall top 2>/dev/nullexit 0}run_cmd(){ echo $ $* eval $* echo}usage() { cat << ENDusage: $PROG_NAME [options] show system information. Without option, it will show all information.options: -c <count> : show how many times. -d: show disk information. -e: show environment. -g: show general information. -i <interval>: show information every <interval> seconds. -m: show memory information. -n: show network information. -p: show process information. -h: show helpEND}set_show_all(){SHOW_GENERAL=1SHOW_DISK=1SHOW_ENV=1SHOW_MEM=1SHOW_NET=1SHOW_PROC=1}show_general(){echo "++++++++++++++++++++++++++ General +++++++++++++++++++++++++++++++++"run_cmd cat /proc/versionrun_cmd cat /proc/uptimerun_cmd cat /proc/cmdlinerun_cmd hostnamerun_cmd cat /proc/modules}show_disk(){echo "++++++++++++++++++++++++++ Disk ++++++++++++++++++++++++++++++++++++"run_cmd cat /proc/mountsrun_cmd cat /proc/mtdrun_cmd df}show_env(){echo "++++++++++++++++++++++++++ Env +++++++++++++++++++++++++++++++++++++"run_cmd env}show_mem(){echo "++++++++++++++++++++++++++ MEM +++++++++++++++++++++++++++++++++++++"run_cmd cat /proc/vmstatrun_cmd cat /proc/meminforun_cmd top &sleep 2killall top}show_proc(){echo "++++++++++++++++++++++++++ Process +++++++++++++++++++++++++++++++++"run_cmd ps w}show_net(){echo "++++++++++++++++++++++++++ Network +++++++++++++++++++++++++++++++++"run_cmd ifconfigrun_cmd route -nrun_cmd cat /etc/resolv.conf}show_info(){ [ $SHOW_GENERAL -eq 0 ] || show_general [ $SHOW_DISK -eq 0 ] || show_disk [ $SHOW_ENV -eq 0 ] || show_env [ $SHOW_MEM -eq 0 ] || show_mem [ $SHOW_NET -eq 0 ] || show_net [ $SHOW_PROC -eq 0 ] || show_proc}#---------------------------- main() --------------------------------------------------# get command line argumentswhile getopts "c:degi:mnph" options; do case "$options" in c) COUNT=$OPTARG ;; d) SHOW_DISK=1;NOT_SHOW_ALL=1 ;; e) SHOW_ENV=1;NOT_SHOW_ALL=1 ;; g) SHOW_GENERAL=1;NOT_SHOW_ALL=1 ;; i) INTERVAL=$OPTARG ;; m) SHOW_MEM=1;NOT_SHOW_ALL=1 ;; n) SHOW_NET=1;NOT_SHOW_ALL=1 ;; p) SHOW_PROC=1;NOT_SHOW_ALL=1 ;; h) usage; exit 0;; \?) usage; exit -1;; esacdoneshift $((OPTIND - 1))#if set interval and not set count, loop foreverif [ $INTERVAL -lt 0 ]; then INTERVAL=1else if [ $COUNT -lt 0 ]; then ALWAYS_LOOP=1 fifiif [ $COUNT -lt 0 ]; then COUNT=1fiif [ $NOT_SHOW_ALL -eq 0 ]; thenset_show_allfiwhile [ $ALWAYS_LOOP -eq 1 ] || [ $COUNT -gt 0 ]; do echo "============================= SYS INFO =============================" echo "#$INDEX Date: `date +%Y-%m-%d_%H:%M:%S`" show_info echo "============================= SYS INFO END =========================" INDEX=$((INDEX + 1)) COUNT=$((COUNT - 1)) sleep $INTERVALdone
- 嵌入式Linux系统上提取有用的系统信息
- 实践:使用 Apache Hadoop 处理日志使用典型 Linux 系统上的 Hadoop 从日志中提取有用数据
- 嵌入式设备上的 Linux 系统开发
- 嵌入式设备上的 Linux 系统开发
- 嵌入式设备上的 Linux 系统开发
- 嵌入式设备上的 Linux 系统开发
- 嵌入式设备上的 Linux 系统开发
- 嵌入式设备上的 Linux 系统开发
- 嵌入式设备上的 Linux 系统开发
- 嵌入式设备上的 Linux 系统开发
- 嵌入式设备上的 Linux 系统开发
- 嵌入式设备上的Linux系统开发
- 嵌入式设备上的 Linux 系统开发
- 嵌入式设备上的 Linux 系统开发
- 嵌入式设备上的 Linux 系统开发
- 嵌入式设备上的 Linux 系统开发
- 嵌入式设备上的LINUX系统开发
- 嵌入式设备上的 Linux 系统开发
- VC6.0 如何使用Cximage
- VC6.0 如何用VFW录制avi
- 如何使用GDI+在缓冲区(内存)中转换图像类型
- cximage 研究之 --- 读取像素内容
- QT程序编译
- 嵌入式Linux系统上提取有用的系统信息
- 深入理解c++虚函数
- 数组中第一个没出现的非负整数
- CxImage DLL 链接错误解决方案
- 分享一个有用的js日常操作工具-underscore
- cximage转换成uiimage
- 找个javascript老师
- uiimage转换成cximage
- 【phpcms-v9】如何获取类别下面的所有文章