0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Shell腳本實現(xiàn)郵件監(jiān)控Linux系統(tǒng)內(nèi)存的方法

Linux愛好者 ? 來源:搜狐網(wǎng) ? 作者:搜狐網(wǎng) ? 2020-09-28 11:56 ? 次閱讀

一、安裝Linux下面的一個郵件客戶端Msmtp軟件(類似于一個Foxmail的工具)

accountdefault host126.com fromtest@126.com authlogin usertest password123456 logfile~/.msmtp.log

# chmod 600 ~/.msmtprc# touch ~/.msmtp.log

3、mutt安裝配置:(一般linux下有默認(rèn)安裝mutt)

setsendmail= "/usr/local/msmtp/bin/msmtp"setuse_from=yes setrealname= "memory"setfrom= test@ 126.com setenvelope_from=yes setrfc2047_parameters=yes setcharset= "utf-8"

4、郵件發(fā)送測試(-s郵件標(biāo)題,-a表加附件)

二、使用Free命令監(jiān)控系統(tǒng)內(nèi)存

1、使用free命令查看linux系統(tǒng)內(nèi)存使用情況:(以M為單位)

2、查看截取剩余內(nèi)存free的數(shù)值命令:

3、編寫內(nèi)存監(jiān)控的腳本文件:

#!/bin/bash #使用free命令監(jiān)控linux系統(tǒng)內(nèi)存變化

#取系統(tǒng)當(dāng)前時間(以追加的方式寫入文件>>) date >> /s/date-time.txt

#抓取物理內(nèi)存free值(以追加的方式寫入文件>>) echoMem-free: `free -m | grep Mem | awk '{print $4}'`M >> /s/mem-free.txt

#抓取緩沖區(qū)的free值(以追加的方式寫入文件>>) echobuffers/cache-free: `free -m | grep - | awk '{print $4}'`M >> /s/buffers-free.txt

#抓取Swap分區(qū)free值(以追加的方式寫入文件>>) echoSwap-free: `free -m | grep Swap | awk '{print $4}'`M >> /s/swap-free.txt

#逐行連接上面的時間和內(nèi)存相關(guān)行數(shù)據(jù)(每次重新寫入文件>) paste /s/date-time.txt /s/mem-free.txt /s/buffers-free.txt /s/swap-free.txt > /s/freemem.txt

# chmod a+x /s/free-mem.sh# /s/free-mem.sh

4、查看內(nèi)存監(jiān)控的結(jié)果文件:

5、編寫free結(jié)果文件郵件發(fā)送腳本:

#!/bin/bash #把生成的freemem.txt文件通過郵件發(fā)送給用戶

#提取本服務(wù)器的IP地址信息 IP=`ifconfig eth0 | grep "inet addr"| cut -f 2 -d ":"| cut -f 1 -d " "`

#提取當(dāng)前日期時間 today=`date -d "0 day"+%Y年%m月%d日`

#發(fā)送內(nèi)存監(jiān)控結(jié)果郵件 echo"這是 $IP服務(wù)器 $today的內(nèi)存監(jiān)控報告,請下載附件。" | mutt -s " $IP服務(wù)器 $today內(nèi)存監(jiān)控報告" -a /s/freemem.txt test@126.com

# chmod a+x /s/sendmail-mem.sh

三、監(jiān)控系統(tǒng)交換分區(qū)Swap的情況,當(dāng)使用超過80%的時候發(fā)告警郵件

#!/bin/bash

#提取本服務(wù)器的IP地址信息 IP=`ifconfig eth0 | grep "inet addr"| cut -f 2 -d ":"| cut -f 1 -d " "`

#系統(tǒng)分配的交換分區(qū)總量 swap_total=`free -m | grep Swap | awk '{print $2}'`

#當(dāng)前剩余的交換分區(qū)free大小 swap_free=`free -m | grep Swap | awk '{print $4}'`

#當(dāng)前已使用的交換分區(qū)used大小 swap_used=`free -m | grep Swap | awk '{print $3}'`

if((swap_used != 0)); then

#設(shè)置交換分區(qū)的告警值為20%(即使用超過80%的時候告警)。swap_warn=0.20

#當(dāng)前剩余交換分區(qū)百分比與告警值進(jìn)行比較(當(dāng)大于告警值(即剩余20%以上)時會返回1,小于(即剩余不足20%)時會返回0 ) swap_now=`expr $swap_per> $swap_warn`

fi

# chmod a+x /s/swap-warning.sh

四、加入任務(wù)計劃:內(nèi)存每十分鐘檢測一次,有告警則立即發(fā)郵件(十分鐘發(fā)一次),內(nèi)存檢測結(jié)果郵件每天早上8點(diǎn)發(fā)一次

*/10 ** ** /s/free-mem.sh */10 ** ** /s/swap-warning.sh 0 8 * ** /s/sendmail-mem.sh
責(zé)任編輯人:CC

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    601

    瀏覽量

    28138
  • Shell腳本
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    8134

原文標(biāo)題:利用 Shell 腳本實現(xiàn)郵件監(jiān)控 Linux 系統(tǒng)的內(nèi)存

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 0人收藏

    評論

    相關(guān)推薦

    Linux系統(tǒng)中通過預(yù)留物理內(nèi)存實現(xiàn)ARM與FPGA高效通信的方法

    管理子系統(tǒng)管理。因此,需要預(yù)留一部分物理內(nèi)存,使其不被內(nèi)核管理。接下來將為大家詳細(xì)介紹在 Linux 系統(tǒng)中通過預(yù)留物理內(nèi)存
    的頭像 發(fā)表于 04-16 13:42 ?311次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b>中通過預(yù)留物理<b class='flag-5'>內(nèi)存</b><b class='flag-5'>實現(xiàn)</b>ARM與FPGA高效通信的<b class='flag-5'>方法</b>

    樹莓派新手必看!在樹莓派上編寫和運(yùn)行 Shell 腳本!

    在本教程中,我將討論Shell腳本的基礎(chǔ)知識、它們的用途以及如何在RaspberryPi上編寫和運(yùn)行Shell腳本。什么是Shell
    的頭像 發(fā)表于 03-25 09:28 ?156次閱讀
    樹莓派新手必看!在樹莓派上編寫和運(yùn)行 <b class='flag-5'>Shell</b> <b class='flag-5'>腳本</b>!

    【ELF 2學(xué)習(xí)板試用】命令行功能測試-shell腳本進(jìn)行IO控制-紅綠燈項目-實現(xiàn)開機(jī)起動

    接上文【ELF 2學(xué)習(xí)板試用】命令行功能測試-shell腳本進(jìn)行IO控制-紅綠燈項目 Linux 系統(tǒng)下 init 系統(tǒng) 大多數(shù)
    發(fā)表于 02-11 11:24

    腳本美化高手之輕松實現(xiàn)文本顏色和背景定制的酷炫Shell技巧

    shell腳本中 echo 和 printf 都可以輸出內(nèi)容。示例1: echo -e "?33[43;35m david use echo say Hello World ?33[0m
    的頭像 發(fā)表于 12-06 10:38 ?519次閱讀
    <b class='flag-5'>腳本</b>美化高手之輕松<b class='flag-5'>實現(xiàn)</b>文本顏色和背景定制的酷炫<b class='flag-5'>Shell</b>技巧

    Linux從零到精通:最簡單的Shell腳本入門教程

    case語句 shell變量數(shù)組 shell腳本前言 |為什么學(xué)習(xí)shell編程 Shell腳本
    的頭像 發(fā)表于 12-05 09:56 ?1197次閱讀
    <b class='flag-5'>Linux</b>從零到精通:最簡單的<b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>入門教程

    Linux系統(tǒng)shell命令解析

    shellLinux系統(tǒng)的用戶界面,提供了用戶與內(nèi)核交互的一種接口,它接收用戶輸入的命令并到送到內(nèi)核去執(zhí)行,因此也被稱為Linux的命令解釋器。
    的頭像 發(fā)表于 11-05 15:40 ?656次閱讀

    Linux環(huán)境變量配置方法

    Linux上環(huán)境變量配置分為設(shè)置永久變量和臨時變量兩種。環(huán)境變量設(shè)置方法同時要考慮環(huán)境Shell類型,不同類型的SHELL設(shè)置臨時變量方法
    的頭像 發(fā)表于 10-23 13:39 ?460次閱讀

    Linux計劃任務(wù)crontab運(yùn)行腳本不正確的問題

    寫好的程序希望在崩潰之后能夠自啟動,于是利用linux的crontab功能,添加一個計劃任務(wù),每分鐘執(zhí)行一個腳本查看需要監(jiān)控的進(jìn)程是否還在,如果不在則啟動之,否則不做任何事情。這么一個簡單的
    的頭像 發(fā)表于 10-23 13:36 ?814次閱讀

    shell腳本執(zhí)行的三種方式及區(qū)別

    Linux系統(tǒng)中,Shell腳本是一種非常實用的工具,用于自動化執(zhí)行一系列命令。Shell腳本
    的頭像 發(fā)表于 08-30 15:24 ?1842次閱讀

    執(zhí)行shell腳本的方式包括什么

    執(zhí)行Shell腳本的方式有很多種,以下是一些常見的方法: 直接運(yùn)行腳本文件 在命令行中,可以直接使用腳本文件的路徑來運(yùn)行
    的頭像 發(fā)表于 08-30 15:17 ?547次閱讀

    shell具有的功能和特點(diǎn)

    是執(zhí)行命令。用戶可以在 Shell 提示符下輸入命令,Shell 會解析命令并將其傳遞給操作系統(tǒng)執(zhí)行。Shell 支持各種類型的命令,包括內(nèi)置命令、外部命令和
    的頭像 發(fā)表于 08-30 14:48 ?1068次閱讀

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之本地腳本的編寫和執(zhí)行

    :3)shell應(yīng)用程序執(zhí)行shell腳本也可直接使用shell應(yīng)用程序進(jìn)行執(zhí)行。我們前面說過,我們指定的shell應(yīng)用為/bin/bash
    發(fā)表于 08-29 10:51

    shell腳本編寫之本地腳本的編寫和執(zhí)行

    用來指定使用的shell應(yīng)用;echo "my first shell !"為腳本中編寫的命令代碼。2、執(zhí)行在執(zhí)行腳本時,腳本
    發(fā)表于 08-28 09:36

    嵌入式學(xué)習(xí)-shell介紹

    輸出執(zhí)行結(jié)果呈現(xiàn)給用戶;同時Shell也是一種解釋性的編程語言或者腳本語言,開發(fā)容易可以在短時間內(nèi)完成功能強(qiáng)大又好用的腳本,可以在不同的系統(tǒng)上移植非常方便。二、
    發(fā)表于 08-16 09:13

    shell基本介紹及常用命令之shell介紹

    輸出執(zhí)行結(jié)果呈現(xiàn)給用戶;同時Shell也是一種解釋性的編程語言或者腳本語言,開發(fā)容易可以在短時間內(nèi)完成功能強(qiáng)大又好用的腳本,可以在不同的系統(tǒng)上移植非常方便。二、
    發(fā)表于 08-15 09:28

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品