• 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}



  • 相关阅读:
    [原]three.js 地形法向量生成
    C# 创建XML文档
    <转载>在C#中操作XML(基础操作)
    <转载>Visual C#.NetSocket篇
    <转载>批处理重定向中的秘密
    <转载>最基本的Socket编程C#版
    <转载>在.NET中运行外部程序的3种方法
    <转载>修改Win7远程桌面端口
    <转载>Visual C#.NetTCP篇
    <转载>C#中的委托和事件(续)
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3295325.html
Copyright © 2020-2023  润新知