使用 shell 指令碼監控 Linux 主機

2021-09-27 05:22:40 字數 1504 閱讀 9384

編寫以下指令碼命令:

[root@localhost sh]# vim sysmon.sh 

#!/bin/bash

#提取效能監控指標(磁碟占用、cpu使用、記憶體使用)

dug=$(df -h | grep "/$" | awk '' | awk -f% '')

cug=$(expr 100 - $(mpstat | tail -1 | awk '' | awk -f. ''))

mug=$(expr $(free | grep "mem:" | awk '') \* 100 / $(free | grep "mem:" | awk ''))

#設定告警日誌檔案、告警郵箱

alog="/tmp/alert.txt" # 日誌檔案的變數

amail="root" # 傳送到郵箱的變數

#判斷是否記錄告警

if [ $dug -gt 80 ]

then

echo "磁碟佔用率:$dug %" >> $alog

fiif [ $cug -gt 70 ]

then

echo "cpu使用率:$cug %" >> $alog

fiif [ $mug -gt 80 ]

then

echo "記憶體使用率:$mug %" >> $alog

fi#判斷是否傳送告警郵件,最後刪除告警日誌檔案

if [ -f $alog ]

then

cat $alog | mail -s "host alert" $amail

rm -rf $alog

fi

然後檢視 crond 系統服務狀態,確保已經執行:

[root@localhost /]# systemctl status crond.service 

● crond.service - command scheduler

loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)

active: active (running) since fri 2019-08-09 17:06:26 cst; 36min ago

main pid: 1073 (crond)

cgroup: /system.slice/crond.service

└─1073 /usr/sbin/crond -n

確認之後 編寫任務計畫:

[root@localhost /]# crontab -e 

*/30 * * * * /sh/sys.sh

[root@localhost /]# crontab -l

*/30 * * * * /sh/sys.sh

Mono使用C 執行shell指令碼 Linux

process process new process process.startinfo.filename bash process.startinfo.createnowindow false 獲取或設定指示是否在新視窗中啟動該程序的值 不想彈出powershell視窗看執行過程的話,就 tru...

使用shell指令碼監控Linux主機

root localhost cat sysmon.sh bin bash dug df h g rep df h grep df h grep awk awk f at position 2 1 cug expr 100 mpstat tail 1 awk awk f.at position 2 ...

使用 shell 指令碼監控 Linux 主機

編寫以下指令碼命令 root localhost sh vim sysmon.sh bin bash 提取效能監控指標 磁碟占用 cpu使用 記憶體使用 dug df h grep awk awk f cug expr 100 mpstat tail 1 awk awk f.mug expr fre...