Shell脚本编程——了解你的Linux系统必须掌握的20个命令

    要想详细了解你的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脚本)