點擊右邊

用Linux Shell劇本來監控磁盤使用環公弈online娛樂境并發送郵件

市場上有許多用來監控 Linux 體系的監控對象,當體系達到閥值后它將發送一封郵件。它監控一切的器材例如 CPU 行使率、內存行使率、互換空間行使率、磁盤空間行使率等等。然而,它更得當小情況以及大情況。
想想若是你只有少許體系,那末甚么是最佳的方式來應答這類環境。
是的,咱們想要寫一個 shell 劇本 來完成。
在這篇指南中咱們打算寫一個 shell 劇本來監控體系的磁盤空間使用率。當體系達到給定的閥值,它將給對應的郵件地址發送一封郵件。在這篇文章中咱們統共增添了四個 shell 劇本,每個用于不同的目的。以后,咱們會想出其余 shell 劇本來監控 CPU,內存以及互換空間行使率。
在此之前,我想廓清一件事,依據我察看的磁盤空間使用率 shell 劇本使用環境。
大多半用戶在多篇博客中談論說,當他們運轉磁盤空間使用率劇本時他們取得了如下過錯。

  1. # sh /opt/script/disk-usage-alert-old.sh
  2.  
  3. /dev/mapper/vg_2g-lv_root
  4. test-script.sh: line 7: [: /dev/mapper/vg_2g-lv_root: integer expression expected
  5. / 9.8G

是的,這是對的。甚至,當我第一次運轉這個劇本的時辰我碰到了雷同的成績。以后,我發明了基本緣故原由。
當你在基于 RHEL 5 & RHEL 6 的體系上運轉包括用于磁盤空間忠告的 df -h 或者 df -H 的 shell 劇本中時,你會發明上述過錯信息,由于輸入格局紕謬,查望下列輸入捕 魚 遊戲 電腦 版
為相識決這個成績,咱們必要用 df -Ph (POSIX 輸入格局),然則默許的 df -h 在基于 RHEL 7 的體系上運轉的很好。

  1. # df -h
  2.  
  3. Filesystem Size Used Avail Use% Mounted on
  4. /dev/mapper/vg_2g-lv_root
  5. 10G 6.7G 3.4G 67% /
  6. tmpfs 7.8G 0 7.8G 0% /dev/shm
  7. /dev/sda1 976M 95M 830M 11% /boot
  8. /dev/mapper/vg_2g-lv_home
  9. 5.0G 4.3G 784M 85% /home
  10. /dev/mapper/vg_2g-lv_tmp
  11. 4.8G 14M 4.6G 1% /tmp

要領一:Linux Shell 劇本來監控磁盤空間使用率以及發送郵件

你可以使用下列 shell 劇本在 Linux 體系中來監控磁盤空間使用率。
當體系達到給定大樂透玩法包牌的閥值限定時,它將發送一封郵件。在這個例子中,咱們配置閥值為 60% 用于測試目的,你可以改變這個限定來切合你的需求。
若是跨越一個文件體系達到給定的閥值,它將發送多封郵件,由于這個劇本使用了輪回。
一樣,替代你的郵件地址來獵取這份忠告。

  1. # vi /opt/script/disk-usage-alert.sh
  2.  
  3. #!/bin/sh
  4. df -Ph | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5,$1 }' | while read output;
  5. do
  6. echo $output
  7. used=$(echo $output | awk '{print $1}' | sed s/%//g)
  8. partition=$(echo $output | awk '{print $2}')
  9. if [ $used -ge 60 ]; then
  10. echo "The partition \"$partition\" on $(hostname) has used $used% at $(date)" | mail -s "Disk Space Alert: $used% Used On $(hostname)" [email protected]
  11. fi
  12. done

輸入:我取得了下列兩封郵件忠告。

  1. The partition "/dev/mapper/vg_2g-lv_home" on 2g.CentOS7 has used 85% at偏財運意思 Mon Apr 29 06:16:14 IST 2019
  2.  
  3. 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 分鐘運轉一次。

  1. # crontab -e
  2. */10 * * * * /bin/bash /opt/script/disk-usage-alert.sh

要領二:Linux Shell 劇本來監控磁盤空間使用率以及發送郵件

作為代替,你可以使用下列的 shell 劇本。比擬下面的劇本咱們做了少許改變。

  1. # vi /opt/script/disk-usage-alert-1.sh
  2.  
  3. #!/bin/sh
  4. df -Ph | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5,$1 }' | while read output;
  5. do
  6. max=60%
  7. echo $output
  8. used=$(echo $output | awk '{print $1}')
  9. partition=$(echo $output | awk '{print $2}')
  10. if [ ${used%?} -ge ${max%?} ]; then
  11. echo "The partition \"$partition\" on $(hostname) has used $used at $(date)" | ma大樂透即時開獎號碼il -s "Disk Space Alert: $used Used On $(hostname)" [email protected]
  12. fi
  13. done

【免責聲明】本站內容轉載自互聯網,其相關談吐僅代表作者小我私大樂透中2個號碼多少錢家概念盡非權勢巨子,不代表本站態度。如您發明內容存在版權成績,請提交相關鏈接至郵箱:,咱們將實時予以處置。