shell practice 06

一转身已万水千山發表於2024-04-12
#!/bin/bash
# author: Chiweiming
# version: v1
# date: 2024-03-28

<<COMMAND
監控系統負載,如果系統負載超過 10,記錄系統狀態資訊
1)系統負載命令使用 uptime 看,過去 1 分鐘的平均負載
2)系統狀態使用如下工具標記:top、vmstat、ss
3)要求每隔 20s 監控一次
4)系統狀態資訊需要儲存到指定目錄下,保留 1 個月,檔名建議帶有 date +%s 字尾或者字首
COMMAND

[[ -d /tmp/logs ]] || mkdir -p /tmp/logs
while true
do
  load=$(uptime | awk -F 'average: ' '{print $2}'| awk -F ',' '{print $1}' | awk -F '.' '{print $1}')  
  if [[ ${load} -gt 10 ]]; 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)

    sleep 20
    find /tmp/logs \( -name "top*" -o -name "vmstat*"  -o -name "ss*" \) -mtime +30 | xargs rm -f
  fi
done

相關文章