Shell实操(六):监控系统负载记录系统状态信息

一、需求

监控系统负载,如果系统负载超过3,则记录系统状态信息,每隔20s监控一次,系统状态信息保留一个月。

二、实现及关键知识点

1、脚本内容

# cat 6.sh
#! /bin/bash

[ -d /tmp/logs ] || mkdir -p /tmp/logs

while :
do
    load=`uptime |awk -F 'average:' '{print $2}' |cut -d ',' -f1 |sed 's/ //g' |cut -d '.'  -f1`
    if [ $load -gt 3 ]
    then
        top -bn1 |head -n 100 > /tmp/logs/top.`date +%s`
        vmstat 1 10 > /tmp/logs/vmstat.`date +%s`
        ss -an > /tmp/logs/ss.`date +%s`
    fi
    sleep 20
    find /tmp/logs  \( -name "top*" -o -name "vmstat*"  -o -name "ss*" \)  -mtime +30 |xargs  rm -f
done

2、关键知识点

(1)||的用法

(2)while :与sleep组合实现死循环

(3)find的用法

三、验证

#准备删除文件
# touch -d "2021-12-06"  top.txt
#模拟CPU压力
# stress -c 4
# uptime
 21:38:06 up 24 min,  3 users,  load average: 4.11, 1.77, 0.79
#执行脚本
# bash  6.sh
#查看结果,发现2021年文件被删除,系统状态信息已记录
# pwd
/tmp/logs
# ll
总用量 152
-rw-r--r-- 1 root root 62406 12月  6 21:38 ss.1701869896
-rw-r--r-- 1 root root 62303 12月  6 21:38 ss.1701869925
-rw-r--r-- 1 root root  7733 12月  6 21:38 top.1701869886
-rw-r--r-- 1 root root  7733 12月  6 21:38 top.1701869916
-rw-r--r-- 1 root root   989 12月  6 21:38 vmstat.1701869886
-rw-r--r-- 1 root root   987 12月  6 21:38 vmstat.1701869916

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值