市場上有許多用來監控 Linux 體系的監控對象,當體系達到閥值后它將發送一封郵件。它監控一切的器材例如 CPU 行使率、內存行使率、互換空間行使率、磁盤空間行使率等等。然而,它更得當小情況以及大情況。
想想若是你只有少許體系,那末甚么是最佳的方式來應答這類環境。
是的,咱們想要寫一個 shell 劇本 來完成。
在這篇指南中咱們打算寫一個 shell 劇本來監控體系的磁盤空間使用率。當體系達到給定的閥值,它將給對應的郵件地址發送一封郵件。在這篇文章中咱們統共增添了四個 shell 劇本,每個用于不同的目的。以后,咱們會想出其余 shell 劇本來監控 CPU,內存以及互換空間行使率。
在此之前,我想廓清一件事,依據我察看的磁盤空間使用率 shell 劇本使用環境。
大多半用戶在多篇博客中談論說,當他們運轉磁盤空間使用率劇本時他們取得了如下過錯。
# sh /opt/script/disk-usage-alert-old.sh
-
/dev/mapper/vg_2g-lv_root
test-script.sh: line 7: [: /dev/mapper/vg_2g-lv_root: integer expression expected
/ 9.8G
是的,這是對的。甚至,當我第一次運轉這個劇本的時辰我碰到了雷同的成績。以后,我發明了基本緣故原由。
當你在基于 RHEL 5 & RHEL 6 的體系上運轉包括用于磁盤空間忠告的 df -h 或者 df -H 的 shell 劇本中時,你會發明上述過錯信息,由于輸入格局紕謬,查望下列輸入捕 魚 遊戲 電腦 版。
為相識決這個成績,咱們必要用 df -Ph (POSIX 輸入格局),然則默許的 df -h 在基于 RHEL 7 的體系上運轉的很好。
# df -h
-
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_2g-lv_root
10G 6.7G 3.4G 67% /
tmpfs 7.8G 0 7.8G 0% /dev/shm
/dev/sda1 976M 95M 830M 11% /boot
/dev/mapper/vg_2g-lv_home
5.0G 4.3G 784M 85% /home
/dev/mapper/vg_2g-lv_tmp
4.8G 14M 4.6G 1% /tmp
要領一:Linux Shell 劇本來監控磁盤空間使用率以及發送郵件
你可以使用下列 shell 劇本在 Linux 體系中來監控磁盤空間使用率。
當體系達到給定大樂透玩法包牌的閥值限定時,它將發送一封郵件。在這個例子中,咱們配置閥值為 60% 用于測試目的,你可以改變這個限定來切合你的需求。
若是跨越一個文件體系達到給定的閥值,它將發送多封郵件,由于這個劇本使用了輪回。
一樣,替代你的郵件地址來獵取這份忠告。
# vi /opt/script/disk-usage-alert.sh
-
#!/bin/sh
df -Ph | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5,$1 }' | while read output;
do
echo $output
used=$(echo $output | awk '{print $1}' | sed s/%//g)
partition=$(echo $output | awk '{print $2}')
if [ $used -ge 60 ]; then
echo "The partition \"$partition\" on $(hostname) has used $used% at $(date)" | mail -s "Disk Space Alert: $used% Used On $(hostname)" [email protected]
fi
done
輸入:我取得了下列兩封郵件忠告。
The partition "/dev/mapper/vg_2g-lv_home" on 2g.CentOS7 has used 85% at偏財運意思 Mon Apr 29 06:16:14 IST 2019
-
The partition "/dev/mapper/vg_2g-lv_root" on 2g.CentOS7 has used 67% at Mon Apr 29 06:16:14 IST 2019
終極增添了一個 cronjob 來主動實現。它會每 10 分鐘運轉一次。
# crontab -e
*/10 * * * * /bin/bash /opt/script/disk-usage-alert.sh
要領二:Linux Shell 劇本來監控磁盤空間使用率以及發送郵件
作為代替,你可以使用下列的 shell 劇本。比擬下面的劇本咱們做了少許改變。
# vi /opt/script/disk-usage-alert-1.sh
-
#!/bin/sh
df -Ph | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5,$1 }' | while read output;
do
max=60%
echo $output
used=$(echo $output | awk '{print $1}')
partition=$(echo $output | awk '{print $2}')
if [ ${used%?} -ge ${max%?} ]; then
echo "The partition \"$partition\" on $(hostname) has used $used at $(date)" | ma大樂透即時開獎號碼il -s "Disk Space Alert: $used Used On $(hostname)" [email protected]
fi
done
【免責聲明】本站內容轉載自互聯網,其相關談吐僅代表作者小我私大樂透中2個號碼多少錢家概念盡非權勢巨子,不代表本站態度。如您發明內容存在版權成績,請提交相關鏈接至郵箱:,咱們將實時予以處置。
|