转载:http://blog.chinaunix.net/uid-16459552-id-3877787.html
要想详细了解你的Linux系统,为系统评估和性能调化提供准确的信息,那么,你会经常用到这几组命令。
一. 系统信息 1. 查看内核版本、编译主机、编译器版本和编译时间的信息 cat /proc/version 2. 查看bootloader启动内核的参数 cat /proc/cmdline 3. 查看内核版本和CPU架构等信息 uname -a 4. 查看当前时间、系统运行时间、用户数量和负载信息 uptime 5. 查看系统进程、内存使用、交换内存、磁盘IO读写、系统中断及上下文切换和CPU使用率的动态信息。如果你bi/bo/wa比较大,说明你的磁盘IO极可能是性能的瓶颈。 vmstat 1 二. CPU信息 6. CPU的每个核的信息,比如主频、硬件商、cache大小和BogoMIPS等信息 cat /proc/cpuinfo 三. 内存信息 7. 内存的综合信息。不要惊讶于Linux系统总是所剩内存不多,free列第二行才是实际剩余内存,大量的cache/buffer是为了提高系统访问磁盘的速度。 free 8. 详细内存信息。包括dirty和slab等内存信息。 cat /proc/meminfo 四. 磁盘信息 9. 当前挂载的文件系统信息,包括fs类型和挂载点等信息 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综合信息,按数字1可以查看每个核的CPU使用率 top 19. all process info,可以跟ps aux对比下 ps -ef 20. 系统启动日志,直接执行dmesg也可 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}