要想详细了解你的Linux系统,为系统评估和性能调化提供准确的信息,那么,你会经常用到这几组命令。

一. 系统信息


    1. 查看内核版本、编译主机、编译器版本和编译时间的信息


   cat /proc/version                     


    2. 查看bootloader启动内核的参数


    cat /proc/cmdline


    3. 查看内核版本和CPU架构等信息


    uname -a


    4. 查看当前时间、系统运行时间、用户数量和负载信息


    uptime


    5. 查看系统进程、内存使用、交换内存、磁盘IO读写、系统中断及上下文切换和CPU使用率的动态信息


    vmstat 1 10

二. CPU信息


    6. CPU的每个核的信息,比如主频、硬件商、cache大小和BogoMIPS等信息


    cat /proc/cpuinfo

三. 内存信息


    7. 内存的综合信息。不要惊讶于Linux系统总是所剩内存不多,free列第二行才是实际剩余内存,大量的cache/buffer是为了提高系统访问磁盘的速度。


    free


    8. 详细内存信息。


    cat /proc/meminfo

四. 磁盘信息


    9. 当前挂载的文件系统信息


    mount -l


    10. 当前磁盘信息,比如分区和大小


    fdisk -l


    11. 当前文件系统信息,包括使用百分比和挂载点


    df -h


    12. 当前挂载的文件系统信息缓存文件


    cat /etc/mtab


    13. 挂载文件系统的配置文件


    cat /etc/fstab

五. 进程信息


    14. 系统的限制信息


    ulimit -a


    15. ten processes catch most CPU resource


    ps aux | sort -k 3 -r | head -11


    16. ten processes catch most Memory resource


    ps aux | sort -k 4 -r | head -11

六. 其它信息


    17. current modules and referenced counter


    lsmod


    18. top综合信息


    top


    19. all process info


    ps -ef


    20. 系统启动日志


    cat /var/log/dmesg

查看以上信息的shell脚本如下:

#!/bin/sh

LOG_FILE=linux_system_info_$(date +%Y%m%d%H%M).log
COND=1
touch ${LOG_FILE} printex()
{
echo " [root@luojianh ]# $1"
} while [ $COND -eq 1 ];
do
echo " *** System information ***"
printex "cat /proc/version"
cat /proc/version
printex "cat /proc/cmdline"
cat /proc/cmdline
printex "uname -a"
uname -a
printex "uptime"
uptime
echo " ## summary info"
printex "vmstat 1 10"
vmstat 1 10
echo "" echo " *** CPU information ***"
CORES=$(grep processor /proc/cpuinfo | wc -l)
CPU_TYPE=$(uname -m)
echo " TITLE: CPU type: ${CPU_TYPE}, cores: ${CORES}"
printex "cat /proc/cpuinfo"
cat /proc/cpuinfo
echo "" echo " *** Memory information ***"
printex "free"
free
printex "cat /proc/meminfo"
cat /proc/meminfo
echo "" echo " *** Disk/Flash information ***"
printex "mount -l #current mount info"
mount -l
printex "fdisk -l #current disk info"
fdisk -l
printex "df -h #current fs info with using rate"
df -h
printex "cat /etc/mtab"
cat /etc/mtab
printex "cat /etc/fstab"
cat /etc/fstab
echo "" echo " *** Processes/Threads information ***"
echo " ## limited info"
printex "ulimit -a"
ulimit -a
echo " ## ten processes catch most CPU resource"
printex "ps aux | sort -k 3 -r | head -11"
ps aux | sort -k 3 -r | head -11
echo " ## ten processes catch most Memory resource"
printex "ps aux | sort -k 4 -r | head -11"
ps aux | sort -k 4 -r | head -11
echo "" echo " *** Lardge information ***"
printex "lsmod #current modules and referenced counter"
lsmod
printex "top -d 1 -n 1"
top -d 1 -n 1
echo " ## all process info"
ps -ef
printex "cat /var/log/dmesg"
cat /var/log/dmesg
echo "" COND=0
done >> ${LOG_FILE} unix2dos ${LOG_FILE}

Shell脚本编程——了解你的Linux系统必须掌握的20个命令的更多相关文章

  1. Shell脚本中,如何判断Linux系统是32位还是64位?

    一行就能搞定,输出32或者64 可以用“和. 参考代码如下: ldconfig if [ $(getconf WORD_BIT) = '32' ] && [ $(getconf LON ...

  2. Shell脚本编程总结及速查手册

    Shell是一种编程语言, 它像其它编程语言如: C, Java, Python等一样也有变量/函数/运算符/if语句/循环控制/… 但在开始之前, 我想先理清Shell语言与Shell之间的关系. ...

  3. Linux shell脚本编程(三)

    Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...

  4. 《Linux命令行与shell脚本编程大全 第3版》

    第一部分 Linux 命令行 第1章  初识Linux she1.1   什么是Linux 21.1.1 深入探究Linux 内核 31.1.2 GNU 工具 61.1.3 Linux 桌面环境 81 ...

  5. Linux Shell脚本编程-基础1

    概述:  shell脚本在Linux系统管理员的运维工作中非常重要.shell脚本能够帮助我们很方便的管理服务器,因为我们可以指定一个任务计划,定时的去执行某一个脚本以满足我们的需求.本篇将从编程基础 ...

  6. Linux Shell脚本编程while语句

    Linux Shell脚本编程while语句案例 1,每隔3秒,打印一次系统负载 #!/bin/bash while truedo    uptime    sleep 3done 2,把监控结果保存 ...

  7. Linux命令行与Shell脚本编程大全

    快来参加<Linux命令行与Shell脚本编程大全>学习吧,提升技能,展示自我. 点击链接即可进入学习:https://s.imooc.com/WTmCO6H 课程亮点适合零基础读者,从零 ...

  8. 【读书笔记】Linux命令行与Shell脚本编程大全

    Linux命令行与Shell脚本编程大全 5.2 shell 的父子关系 命令分组 Command Grouping 主要有两种形式: 一种以小括号包括,命令之间以冒号分隔.也被称为 进程列表: 注意 ...

  9. Linux shell脚本编程(二)

    Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...

随机推荐

  1. jQuery获取Select选择的Text和 Value

    jQuery获取Select选择的Text和Value:语法解释:1. $("#select_id").change(function(){//code...});   //为Se ...

  2. 了解SOA是什么!

    面向服务架构 面向服务的体系结构(service-oriented architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来 ...

  3. uoj164. 【清华集训2015】V 统计

    坑爹题面:http://uoj.ac/problem/164 正常题面: 对于一个序列支持下列5个操作: 1.区间加x 2.区间减x并与0取max 3.区间覆盖 4.单点查询 5.单点历史最大值查询 ...

  4. VS2013相关资料

    visual studio 主页 http://msdn.microsoft.com/en-us/vstudio/aa718325.aspx vs2013 download http://www.mi ...

  5. Spring MVC和Struts2的区别

    1. 机制:spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同. 2. 性能:spring会稍微比struts快.spring mvc是基于方法的设 ...

  6. oracle dataguard

    startup mount restrict; drop database; alter database add standby logfile thread 1 group 8 '/oracle/ ...

  7. BZOJ 3672 购票

    Description 今年夏天,NOI在SZ市迎来了她30周岁的生日.来自全国\(n\)个城市的OIer们都会从各地出发,到SZ市参加这次盛会. 全国的城市构成了一棵以SZ市为根的有根树,每个城市与 ...

  8. 在Eclipse中安装spket插件

    spket是一个开发JavaScript和Ext等的开发工具,它可以 是独立的IDE,也可以作为 Eclipse的插件使用,下面介绍如何在Eclipse中安装spket插件, 1.首先上 官网 htt ...

  9. 关于IOS开发者账号一点总结

    经过查阅相关资料,我扼要总结了以下几点内容. 一.开发者账号类型 个人账号 99美金/年 公司账号 99 企业账号 299 教育账号 0 二.开发者账号有无比较 如果有: 可以真机测试 发布的应用可以 ...

  10. apk,task,android:process与android:sharedUserId的区别

    apk一般占一个dalvik,一个进程,一个task.通过设置也可以多个进程,占多个task. task是一个activity的栈,其中"可能"含有来自多个App的activity ...