获取中...

-

Just a minute...

欢迎大家转载,转载请注明出处,谢谢!

  • 知识准备

    1. date:获取当前时间
    2. /etc/issue:系统版本信息
    3. /proc/loadavg:负载信息
    4. df:获取磁盘信息
    5. free:内存信息
    6. /sys/class/thermal/thermal_zone0/temp:cpu温度
    7. hostname:主机名
  • 代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    #!/bin/bash

    # 现在时间
    nowdate=`date +"%Y-%m-%d__%H:%M:%S"`
    # 系统版本
    os_v=`cat /etc/issue | awk '{printf("%s_%s", $1, $2);}'`
    # 内核版本
    ker_v=`uname -r`
    # 运行时间和负载信息
    run_and_load=`uptime -p | tr -s " " "\n" | awk '{printf("_%s", $1)}'``cat /proc/loadavg | awk '{ printf(" %s %s %s", $1, $2, $3); }'`

    # 负载信息
    #load_info=`uptime | awk '{printf ("%s %s %s", $(NF - 2), $(NF - 1), $NF)}' | tr -s "," " "`

    disk_total=`df -m | grep "^/dev/" | awk 'BEGIN{t_num=0; u_num = 0}{if (NR > 1) {t_num = t_num + $2; u_num += $3 }}END{printf ("%d:%d", t_num, u_num)}'`
    disk_used=`echo $disk_total | cut -d ":" -f2`
    disk_total=`echo $disk_total | cut -d ":" -f1`

    #内存大小
    mem_total=`free -m | sed -n "2p" | awk '{printf("%s", $2)}'`

    # 磁盘占用百分比
    per_disk_used=`echo "$disk_total $disk_used" | awk '{printf("%d", $2/$1 * 100);}'`
    # 内存占用百分比
    per_memo=`free -m | sed -n "2p" | awk '{printf("%d", $3/$2 * 100);}'`
    # CPU温度
    cpu_temp=`cat /sys/class/thermal/thermal_zone0/temp | awk '{printf("%d", $1 / 1000);}'`

    # 磁盘报警级别

    if [[ $per_disk_used -ge 0 && $per_disk_used -le 80 ]];then
    disk_warn="normal"

    elif [[ $per_disk_used -ge 81 && $per_disk_used -le 90 ]];then
    disk_warn="note"

    else
    disk_warn="warning"

    fi

    # 内存报警级别

    if [[ $per_memo -ge 0 && $per_memo -le 70 ]];then
    memo_warn="normal"

    elif [[ $per_memo -ge 71 && $per_memo -le 80 ]];then
    memo_warn="note"

    else
    memo_warn="warning"

    fi

    # CPU温度报警级别

    if [[ $cpu_temp -ge 0 && $cpu_temp -le 50 ]];then
    cpu_warn="normal"

    elif [[ $cpu_temp -ge 51 && $cpu_temp -le 70 ]];then
    cpu_warn="note"

    else
    cpu_warn="warning"

    fi

    #主机名
    hname=`hostname`

    echo "$nowdate $hname $os_v $ker_v ${run_and_load} ${disk_total}M ${per_disk_used}% ${mem_total}M ${per_memo}% ${cpu_temp} ${disk_warn} ${memo_warn} ${cpu_warn}"

相关文章
评论
分享
  • CPU信息获取

    准备知识 /proc文件系统是一个伪文件系统,该文件系统中存储着内核控制相关信息,通俗点说就是这个目录是虚拟的,它受内核直接控制,存储与内核控制相关的数据,与其他目录不同的是/proc目录不是真实存储在硬盘中的,它的数据存储在内存...

    CPU信息获取
  • BASH脚本实现素数线性筛

    知识准备 for循环12345678910111213141516171819202122232425for i in `seq 1 10`;do echo ${i}done#执行结果---------12345...

    BASH脚本实现素数线性筛
  • 磁盘信息获取

    知识准备: df:该工具用来获取文件系统挂载信息。 awk:该工具用来处理 df的数据。 代码: 123456789101112131415161718#!/bin/bashdf -m | grep "^/...

    磁盘信息获取
  • 进程信息获取

    知识准备: ps 该工具用来获取进程信息 awk该工具用来处理数据 代码 123456789101112131415161718192021#!/bin/bashps -aux | awk -v last_all=$(ps -...

    进程信息获取
  • 内存信息获取

    free:该工具用来获取内存信息 grep:该工具用来筛选数据 awk':该工具用来处理数据 代码: 1234567#!/bin/bashfree -m | grep "^Mem" | awk -v...

    内存信息获取
  • 用户信息获取

    欢迎大家转载,转载请注明出处,谢谢! 知识准备 w:获取当前登录信息 grep:对数据进行筛选 cut:对字符串进行剪切 sort:排序 uniq:统计每个字符串个数 head:显示开头几行 awk:文本处理工具 代码 1...

    用户信息获取
  • 服务器健康监控

    项目地址 简介:使用C语言和bash脚本实现的服务器健康监控系统。服务器端通过执行bash脚本获取健康信息,利用socket即时发送到监控端主机。 监测数据类型: 采用bash脚本获取相关信息 cpu 内存 硬盘 恶意进...

    服务器健康监控
  • BASH杂记

    BASH杂记
  • 八大排序算法总结

    直接插入排序算法 概述直接插入排序算法在逻辑上将整体数据分为两部分,一部分是已排序部分,另一部分是待排序部分 。排序的过程是:在待排序部分逐步的拿出一个元素,将其插入到已排序部分中合理的位置 。 适用场景插入排序在对几乎已经排好序的数...

    八大排序算法总结
  • hexo低成本搭建静态网页博客

    引言好多同学有写博客的习惯,也有各大例如csd、简等博客平台。但是这些平台毕竟是盈利平台,无法做到对自己的博客完全掌控,有一丝丝的不爽快。想要DIY一下几乎不可能。在这里推荐同学们自己动手丰衣足食。 准备知识 github最基本的使用...

    hexo低成本搭建静态网页博客
Please check the parameter of comment in config.yml of hexo-theme-Annie!