阿里云提供的一个监测cpu和内存的shell脚本(get_cpu_mem_info.sh)
2017-11-22 00:00
1356 查看
阿里云提供的监测cpu和内存相关的一个shell脚本。
使用方式,直接放到/tmp下 然后运行
get_cpu_mem_info.sh
使用方式,直接放到/tmp下 然后运行
nohup bash get_cpu_mem_info.sh &
1,下载该文件解压后,上传到 /tmp 目录中。 2,运行 cd 切换到/tmp目录。 3,执行: nohup bash get_cpu_mem_info.sh & 该工具会在 /tmp 目录下生成一个日志文件,记录实时监控系统的 CPU、内存的使用情况,等到系统异常时可以用于分析日志。
get_cpu_mem_info.sh
#!/bin/bash #When the free memory very less ,this script to collect CPU/memory usage information and dmessage information. #Version 1.0 time:2014-3-11 #Version 2.0 time:2014-12-23 logfile=/tmp/$0.log check_os_release() { while true do os_release=$(grep "Red Hat Enterprise Linux Server release" /etc/issue 2>/dev/null) os_release_2=$(grep "Red Hat Enterprise Linux Server release" /etc/redhat-release 2>/dev/null) if [ "$os_release" ] && [ "$os_release_2" ] then if echo "$os_release"|grep "release" >/dev/null 2>&1 then os_release=redhat echo "$os_release" else os_release="" echo "$os_release" fi break fi os_release=$(grep "Aliyun Linux release" /etc/issue 2>/dev/null) os_release_2=$(grep "Aliyun Linux release" /etc/aliyun-release 2>/dev/null) if [ "$os_release" ] && [ "$os_release_2" ] then if echo "$os_release"|grep "release" >/dev/null 2>&1 then os_release=aliyun echo "$os_release" else os_release="" echo "$os_release" fi break fi os_release_2=$(grep "CentOS" /etc/*release 2>/dev/null) if [ "$os_release_2" ] then if echo "$os_release_2"|grep "release" >/dev/null 2>&1 then os_release=centos echo "$os_release" else os_release="" echo "$os_release" fi break fi os_release=$(grep -i "ubuntu" /etc/issue 2>/dev/null) os_release_2=$(grep -i "ubuntu" /etc/lsb-release 2>/dev/null) if [ "$os_release" ] && [ "$os_release_2" ] then if echo "$os_release"|grep "Ubuntu" >/dev/null 2>&1 then os_release=ubuntu echo "$os_release" else os_release="" echo "$os_release" fi break fi os_release=$(grep -i "debian" /etc/issue 2>/dev/null) os_release_2=$(grep -i "debian" /proc/version 2>/dev/null) if [ "$os_release" ] && [ "$os_release_2" ] then if echo "$os_release"|grep "Linux" >/dev/null 2>&1 then os_release=debian echo "$os_release" else os_release="" echo "$os_release" fi break fi break done } rhel_fun() { while true do vm_mem=$(free -m|grep "buffers/cache"|awk '{print $4}') cpu=$(top -bn2|grep "Cpu(s)"|awk '{print $8}'|awk -F'%' '{print $1}'|tail -n1) check_cpu=$(echo "$cpu <20" |bc) if [[ $vm_mem -le 100 ]] || [[ $check_cpu -eq 1 ]] then echo "======================================================" >>$logfile date >>$logfile echo "======================================================" >>$logfile echo "The memory is too less." >>$logfile free -m >>$logfile echo "=======================CPU info========================" >>$logfile (ps aux|head -1;ps aux|sort -nrk3|grep -v "RSS") >>$logfile echo "=======================Memory info=====================" >>$logfile (ps aux|head -1;ps aux|sort -nrk6|grep -v "RSS") >>$logfile date >>$logfile echo "=======================Dmesg info=====================" >>$logfile dmesg >>$logfile dmesg -c fi sleep 10 done } debian_fun() { while true do vm_mem=$(free -m|grep "buffers/cache"|awk '{print $4}') cpu=$(top -bn2|grep "Cpu(s)"|awk '{print $5}'|awk -F'%' '{print $1}'|tail -n1) check_cpu=$(echo "$cpu <20" |bc) if [[ $vm_mem -le 100 ]] || [[ $check_cpu -eq 1 ]] then echo "======================================================" >>$logfile date >>$logfile echo "======================================================" >>$logfile echo "The memory is too less." >>$logfile free -m >>$logfile echo "=======================CPU info========================" >>$logfile (ps aux|head -1;ps aux|sort -nrk3|grep -v "RSS") >>$logfile echo "=======================Memory info=====================" >>$logfile (ps aux|head -1;ps aux|sort -nrk6|grep -v "RSS") >>$logfile date >>$logfile echo "=======================Dmesg info=====================" >>$logfile dmesg >>$logfile dmesg -c fi sleep 10 done } check_os_release case "$os_release" in redhat|centos|aliyun) yum install bc -y rhel_fun ;; debian|ubuntu) apt-get install bc -y debian_fun ;; esac
相关文章推荐
- Shell脚本-某程序占用CPU及内存监测
- 一个用了统计CPU 内存 硬盘 使用率的shell脚本
- 一个用了统计CPU 内存 硬盘 使用率的shell脚本
- 一个用了统计CPU 内存 硬盘 使用率的shell脚本
- shell脚本监控磁盘I/O,cpu,内存
- shell脚本中使用自定义命令之三---通过加载一个envsetup.sh实现
- centos inux 系统的负载与CPU、内存、硬盘、用户数监控shell脚本
- 统计 cpu 内存 使用率的shell脚本代码
- shell脚本监控系统负载、CPU和内存使用情况
- 从rocketmq搬来的一个shell脚本tools.sh
- Shell脚本监控CPU、内存和硬盘利用率
- Redhat linux 系统的负载与CPU、内存、硬盘、用户数监控shell脚本
- Redhat linux 系统的负载与CPU、内存、硬盘、用户数监控shell脚本
- 编写shell脚本监控系统负载、CPU和内存使用情况
- Java 连接远程Linux 服务器执行 shell 脚本查看 CPU、内存、硬盘信息
- linux系统的负载与CPU、内存、硬盘、用户数监控shell脚本
- shell脚本: linux系统的负载与CPU、内存、硬盘、用户数监控
- 获取服务器信息shell脚本:内存大小,cpu型号,系统发行版本,硬盘个数及大小等
- shell脚本监控系统负载、CPU和内存使用情况
- 使用shell脚本采集系统cpu、内存、磁盘、网络等信息