整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          通過mutt發送郵件時郵件較大問題解決

          通過mutt發送郵件時郵件較大問題解決

          過mutt發送郵件時郵件較大問題解決

          在centos 7 linux系統中我們通過mutt命令發送郵件時,當發送郵件的附件大小較大時提示錯誤,無法發送,提示如下錯誤信息:

          postdrop: warning: uid=0: File too large

          sendmail: fatal: root(0): message file too big

          發送信件出錯,子進程已退出 75 (Deferred.)。

          無法發送此信件。

          問題是我們發送的郵件的附件大小超過了postfix郵件系統默認的郵件大小。

          解決辦法是需要調整郵件系統的郵件大小限制。

          我們通過編輯/etc/postfix/main.cf郵件的配置文件,在文件中添加如下一行即可:

          message_size_limit=409600000

          大小根據自己的實際情況輸入即可,我們再次執行郵件發送命令,我們就可以在qq郵箱中收到我們發送的郵件,包括我們的附件

          2006 年開始轉戰 Linux 系統后,經過幾年的實踐,我的軟件設置在過去十年內出人意料的固定。再過十年回顧一下,看看發生了什么,也許會非常有趣。

          ? 來源:linux.cn ? 作者:Dennis Felsing ? 譯者:chenmu-kk ?

          (本文字數:12075,閱讀時長大約:15 分鐘)

          從 2006 年開始轉戰 Linux 系統后,經過幾年的實踐,我的軟件設置在過去十年內出人意料的固定。再過十年回顧一下,看看發生了什么,也許會非常有趣。在寫這篇推文時,我迅速回顧了正在運行的內容:

          htop overview


          動機

          我的軟件介紹排序不分先后:

          • 程序應該運行在本地系統中以便我可以控制它,這其中并不包括云解決方案。
          • 程序應在終端中運行,以便于在任何地方連貫地使用它們,包括性能稍差的電腦或手機。
          • 通過使用終端軟件,可以實現自動聚焦鍵盤。只有在一些有意義的地方,我會更喜歡使用鼠標,因為在打字期間一直伸手去拿鼠標感覺像在浪費時間。有時候過了一個小時我才注意到甚至還沒有插鼠標。
          • 最好使用快速高效的軟件,我不喜歡聽到風扇的聲音和感到房間在變熱。我還可以繼續長久地運行舊硬件,已經使用了 10 年的 Thinkpad x200s 還能很好地支持我所使用的軟件。
          • 組合。我不想手動執行每個步驟,而是在需要時自動執行更多操作,這時自然是支持 shell。

          操作系統

          十二年前移除 Windows 系統后,我在 Linux 系統上經歷了一個艱難的開始,當時我手上只有 Gentoo Linux 系統的安裝光盤和一本打印的說明書,要用它們來實現一個可運行的 Linux 系統。雖然花費了幾天的時間去編譯和修整,但最終還是覺得自己受益頗多。

          自此我再也沒有轉回 Windows 系統,但在持續的編譯壓力導致風扇失靈后,我將我的電腦系統切換到 Arch Linux 。之后我將其他的電腦和私人服務器也切換到了 Arch Linux。作為一個滾動發布發行版,你可以隨時升級軟件包,但 Arch Linux News 已經詳細報道了其中最主要的漏洞。

          不過,令人煩惱的是一旦你更新了舊的內核模組,Arch Linux 就會移除舊版的相關信息。我經常注意到一旦我試著插入一個 USB 閃存盤,內核就無法加載相關組件。相反,每次內核升級后都應該進行重啟。有一些 方法 可以解決這個問題,但我還沒有實際地使用它們。

          其他程序也會出現類似的情況,通常 Firefox 、 cron 或者 Samba 在升級后都需要重啟,但惱人的是,它們沒有警告你存在這種情況。我在工作中使用的 SUSE 很好地提醒了這種情況。

          對于 DDNet 產品服務器,相較于 Arch Linux ,我更傾向于 Debian 系統,這樣在每次升級時出現故障的幾率更低。我的防火墻和路由器使用了 OpenBSD ,它擁有干凈系統、文檔和強大的 pf 防火墻 ,而我現在不需要一個單獨的路由器。

          窗口管理器

          從我開始使用 Gentoo 后,我很快注意到 KDE 的編譯時間非常長,這讓我沒辦法繼續使用它。我四處尋找更簡單的解決方案,最初使用了 Openbox 和 Fluxbox 。某次,為了能更多進行純鍵盤操作,我開始嘗試轉入平鋪窗口管理器,并在研究其初始版本的時候學習了 dwm 和 awesome 。

          最終,由于 xmonad 的靈活性、可擴展性以及使用純 Haskell (一種出色的函數編程語言)編寫和配置,最終選擇了它。一個例子是,我在家中運行一個 40" 4K 的屏幕,但經常會將它分為四個虛擬屏幕,每個虛擬屏幕顯示一個工作區,每個工作區自動排列在我的窗口上。當然, xmonad 有一個對應的 模塊 。

          dzen 和 conky 對我來說是一個非常簡單的狀態欄。我的整體 conky 配置看起來是這樣的:

          out_to_console yes
          update_interval 1
          total_run_times 0
          
          TEXT
          ${downspeed eth0} ${upspeed eth0} | $cpu% ${loadavg 1} ${loadavg 2} ${loadavg 3} $mem/$memmax | ${time %F %T}
          

          輸入命令直接通過管道輸入 dzen2:

          conky | dzen2 -fn '-xos4-terminus-medium-r-normal-*-12-*-*-*-*-*-*-*' -bg '#000000' -fg '#ffffff' -p -e '' -x 1000 -w 920 -xs 1 -ta r
          

          對我而言,一項重要功能是在完成工作后使終端發出蜂鳴聲。只需要簡單地在 zsh 中的 PR_TITLEBAR 變量中添加一個 \a 字符就可以做到,只要工作完成就可以發出蜂鳴聲。當然,我使用了命令:

          echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf
          

          將 pcspkr 內核模塊列入黑名單來禁用實際的蜂鳴聲。相反 urxvt 的 URxvt.urgentOnBell: true 設置會將聲音變為尖銳。之后 xmonad 有一個 urgency 鉤子來捕捉這類信號,并且我可以使用組合鍵自動聚焦到當前的發出緊急信號的窗口。在 dzen 中我可以看到一個漂亮且明亮的 #ff0000 緊急窗口。

          在我筆記本上所得到的最終成品是:

          Laptop screenshot


          我聽說前幾年 i3 變得非常流行,但它要求更多的手動窗口對齊而不是自動對齊。

          我意識到也有像 tmux 那樣的終端多路復用器,但我仍想要一些圖形化應用程序,因此最終我沒有有效地使用它們。

          終端連續性

          為了使終端保持活躍狀態,我使用了 dtach ,它只是模擬屏幕分離功能。為了使計算機上的每個終端都可連接和斷開,我編寫了一個小的封裝腳本。 這意味著,即使必須重新啟動 X 服務器,我也可以使所有終端都運行良好,包括本地和遠程終端。

          Shell & 編程

          對于 shell,我使用 zsh 而不是 bash ,因為它有眾多的功能。

          作為終端模擬,我發現 urxvt 足夠輕巧,支持 Unicode 編碼和 256 色,具有出色的性能。另一個重要的功能是可以分別運行 urxvt 客戶端和守護進程。因此,即使大量終端也幾乎不占用任何內存(回滾緩沖區除外)。

          對我而言,只有一種字體看起來絕對干凈和完美: Terminus 。 由于它是位圖字體,因此所有內容都是完美像素,渲染速度極快且 CPU 使用率低。為了能使用 CTRL-WIN-[1-7] 在每個終端按需切換字體,我的 ~/.Xdefaults 包含:

          URxvt.font: -xos4-terminus-medium-r-normal-*-14-*-*-*-*-*-*-*
          dzen2.font: -xos4-terminus-medium-r-normal-*-14-*-*-*-*-*-*-*
          
          URxvt.keysym.C-M-1: command:\033]50;-xos4-terminus-medium-r-normal-*-12-*-*-*-*-*-*-*\007
          URxvt.keysym.C-M-2: command:\033]50;-xos4-terminus-medium-r-normal-*-14-*-*-*-*-*-*-*\007
          URxvt.keysym.C-M-3: command:\033]50;-xos4-terminus-medium-r-normal-*-18-*-*-*-*-*-*-*\007
          URxvt.keysym.C-M-4: command:\033]50;-xos4-terminus-medium-r-normal-*-22-*-*-*-*-*-*-*\007
          URxvt.keysym.C-M-5: command:\033]50;-xos4-terminus-medium-r-normal-*-24-*-*-*-*-*-*-*\007
          URxvt.keysym.C-M-6: command:\033]50;-xos4-terminus-medium-r-normal-*-28-*-*-*-*-*-*-*\007
          URxvt.keysym.C-M-7: command:\033]50;-xos4-terminus-medium-r-normal-*-32-*-*-*-*-*-*-*\007
          
          URxvt.keysym.C-M-n: command:\033]10;#ffffff\007\033]11;#000000\007\033]12;#ffffff\007\033]706;#00ffff\007\033]707;#ffff00\007
          URxvt.keysym.C-M-b: command:\033]10;#000000\007\033]11;#ffffff\007\033]12;#000000\007\033]706;#0000ff\007\033]707;#ff0000\007
          

          對于編程和書寫,我使用 Vim 語法高亮顯示和 ctags 進行索引,以及一些帶有 grep 、sed 和其他用于搜索和操作的常用終端窗口。這可能不像 IDE 那樣舒適,但可以實現更多的自動化。

          Vim 的一個問題是你已經習慣了它的鍵映射,因此希望在任何地方都使用它們。

          在 shell 功能不夠強大時, Python 和 Nim 作為腳本語言也不錯。

          系統監控

          htop (查看當前站點的后臺運行,是托管服務器的實時視圖)非常適合快速了解軟件的當前運行狀態。 lm_sensors 可以監控硬件溫度、風扇和電壓。 powertop 是一款由 Intel 發布的優秀省電小工具。 ncdu 可以交互式分析磁盤使用情況。

          nmap 、 iptraf-ng、 tcpdump 和 Wireshark 都是分析網絡問題的基本工具。

          當然還有很多更優秀的工具。

          郵件 & 同步

          在我的家庭服務器上,我為自己所有的郵箱賬號運行了 fetchmail 守護進程。fetchmail 只是檢索收到的郵件并調用 procmail :

          #!/bin/sh
          for i in /home/deen/.fetchmail/*; do
           FETCHMAILHOME=$i /usr/bin/fetchmail -m 'procmail -d %T' -d 60
          done
          

          配置非常簡單,然后等待服務器通知我們有新的郵件:

          poll imap.1und1.de protocol imap timeout 120 user "dennis@felsin9.de" password "XXX" folders INBOX keep ssl idle
          

          我的 .procmailrc 配置包含一些備份全部郵件的規則,并將郵件整理在對應的目錄下面。例如,基于郵件列表名或者郵件標題:

          MAILDIR=/home/deen/shared/Maildir
          LOGFILE=$HOME/.procmaillog
          LOGABSTRACT=no
          VERBOSE=off
          FORMAIL=/usr/bin/formail
          NL="
          "
          
          :0wc
          * ! ? test -d /media/mailarchive/`date +%Y`
          | mkdir -p /media/mailarchive/`date +%Y`
          
          # Make backups of all mail received in format YYYY/YYYY-MM
          :0c
          /media/mailarchive/`date +%Y`/`date +%Y-%m`
          
          :0
          * ^From: .*(.*@.*.kit.edu|.*@.*.uka.de|.*@.*.uni-karlsruhe.de)
          $MAILDIR/.uni/
          
          :0
          * ^list-Id:.*lists.kit.edu
          $MAILDIR/.uni-ml/
          
          [...]
          

          我使用 msmtp 來發送郵件,它也很好配置:

          account default
          host smtp.1und1.de
          tls on
          tls_trust_file /etc/ssl/certs/ca-certificates.crt
          auth on
          from dennis@felsin9.de
          user dennis@felsin9.de
          password XXX
          
          [...]
          

          但是到目前為止,郵件還在服務器上。 我的文檔全部存儲在一個目錄中,我使用 Unison 在所有計算機之間進行同步。Unison 可以視為雙向交互式 rsync ,我的郵件是這個文件目錄下的一部分,因此它們最終存儲在我的電腦上。

          這也意味著,盡管郵件會立即到達我的郵箱,但我只是按需拿取,而不是郵件一到達時就立即收到通知。

          從此我使用 mutt 閱讀郵件,使用側邊欄顯示我的郵件目錄。 /etc/mailcap 文件對于顯示非純文本郵件( HTML, Word 或者 PDF)不可或缺:

          text/html;w3m -I %{charset} -T text/html; copiousoutput
          application/msword; antiword %s; copiousoutput
          application/pdf; pdftotext -layout /dev/stdin -; copiousoutput
          

          新聞 & 通訊

          Newsboat 是一個非常棒的終端 RSS/Atom 閱讀器。我在一個有約 150 個提要的 tach 會話服務器上運行它。也可以在本地選擇提要,例如:

          ignore-article "https://forum.ddnet.tw/feed.php" "title=~ \"Map Testing ?\" or title=~ \"Old maps ?\" or title=~ \"Map Bugs ?\" or title=~ \"Archive ?\" or title=~ \"Waiting for mapper ?\" or title=~ \"Other mods ?\" or title=~ \"Fixes ?\""
          

          我以同樣的方式使用 Irssi 進行 IRC 通訊。

          日歷

          remind 是一個可以從命令行獲取的日歷。通過編輯 rem 文件可以設置新的提醒:

          # One time events
          REM 2019-01-20 +90 Flight to China %b
          
          # Recurring Holidays
          REM 1 May +90 Holiday "Tag der Arbeit" %b
          REM [trigger(easterdate(year(today()))-2)] +90 Holiday "Karfreitag" %b
          
          # Time Change
          REM Nov Sunday 1 --7 +90 Time Change (03:00 -> 02:00) %b
          REM Apr Sunday 1 --7 +90 Time Change (02:00 -> 03:00) %b
          
          # Birthdays
          FSET birthday(x) "'s " + ord(year(trigdate())-x) + " birthday is %b"
          REM 16 Apr +90 MSG Andreas[birthday(1994)]
          
          # Sun
          SET $LatDeg 49
          SET $LatMin 19
          SET $LatSec 49
          SET $LongDeg -8
          SET $LongMin -40
          SET $LongSec -24
          
          MSG Sun from [sunrise(trigdate())] to [sunset(trigdate())]
          [...]
          

          遺憾的是,目前 remind 中還沒有中國農歷的提醒功能,因此中國的節日不易計算。

          我給提醒設置了兩個名字:

          rem -m -b1 -q -g
          

          按時間順序查看待辦事項清單

          rem -m -b1 -q -cuc12 -w$(($(tput cols)+1)) | sed -e "s/\f//g" | less
          

          顯示適應終端寬度的日歷:

          remcal


          字典

          rdictcc 是鮮為人知的字典工具,它可以使用 dict.cc 很棒的詞典并將他們轉存在本地數據庫中:

          $ rdictcc rasch====================[ A=> B ]====================rasch:
           - apace
           - brisk [speedy]
           - cursory
           - in a timely manner
           - quick
           - quickly
           - rapid
           - rapidly
           - sharpish [Br.] [coll.]
           - speedily
           - speedy
           - swift
           - swiftly
          rasch [gehen]:
           - smartly [quickly]
          Rasch {n} [Zittergras-Segge]:
           - Alpine grass [Carex brizoides]
           - quaking grass sedge [Carex brizoides]
          Rasch {m} [regional] [Putzrasch]:
           - scouring pad====================[ B=> A ]====================Rasch model:
           - Rasch-Modell {n}
          

          記錄和閱讀

          我有一個簡單記錄任務的備忘錄,在 Vim 會話中基本上一直處于打開狀態。我也使用備忘錄作為工作中“已完成”工作的記錄,這樣就可以檢查自己每天完成了哪些任務。

          對于寫文件、信件和演示文稿,我會使用 LaTeX 進行高級排版。德式的簡單信件可以這樣設置,例如:

          \documentclass[paper=a4, fromalign=right]{scrlttr2}
          \usepackage{german}
          \usepackage{eurosym}
          \usepackage[utf8]{inputenc}
          \setlength{\parskip}{6pt}
          \setlength{\parindent}{0pt}
          
          \setkomavar{fromname}{Dennis Felsing}
          \setkomavar{fromaddress}{Meine Str. 1\\69181 Leimen}
          \setkomavar{subject}{Titel}
          
          \setkomavar*{enclseparator}{Anlagen}
          
          \makeatletter
          \@setplength{refvpos}{89mm}
          \makeatother
          
          \begin{document}
          \begin{letter} {Herr Soundso\\Deine Str. 2\\69121 Heidelberg}
          \opening{Sehr geehrter Herr Soundso,}
          
          Sie haben bei mir seit dem Bla Bla Bla.
          
          Ich fordere Sie hiermit zu Bla Bla Bla auf.
          
          \closing{Mit freundlichen Grü?en}
          
          \end{letter}
          \end{document}
          

          在 我的私人網站 上可以找到更多的示例文檔和演示文稿。

          Zathura 讀取 PDF 文件速度很快,支持 Vim 類控件,還支持兩種不同的 PDF 后端: Poppler 和 MuPDF。另一方面,在偶爾遇到 Zathura 無法打開的文件時, Evince 則顯得更全能一些。

          圖片編輯

          簡便的選擇是, GIMP 和 Inkscape 分別用于照片編輯和交互式向量圖形。

          有時 Imagemagick 已經足夠好了,它可以從命令行直接使用,從而自動編輯圖片。同樣 Graphviz 和 TikZ 可以用來繪制曲線圖和其他圖表。

          Web 瀏覽器

          對于 Web 瀏覽器,我一直在使用 Firefox 。相較于 Chrome,它的可擴展性更好,資源使用率更低。

          不幸的是,在 Firefox 完全改用 Chrome 風格的擴展之后, Pentadactyl 擴展的開發就停止了,所以我的瀏覽器中再也沒有令人滿意的 Vim 類控件了。

          媒體播放器

          通過設置 vo=gpu 以及 hwdec=vaapi,具有硬件解碼功能的 mpv 在播放期間 CPU 的占用率保持在 5%。相較于默認的 PulseAudio,mpv 中的 audio-channels=2 似乎可以使我的立體揚聲器/耳機獲得更清晰的降級混頻。一個很棒的小功能是用 Shift-Q 退出,而不是只用 Q 來保存回放位置。當你與母語是其他語言的人一起看視頻時,你可以使用 --secondary-sid=同時顯示兩種字幕,主字幕位于底部,次字幕位于屏幕頂部。

          我的無線鼠標可以簡單地通過一個小的配置文件( ~/.config/mpv/input.conf )實現遠程控制 mpv :

          MOUSE_BTN5 run "mixer" "pcm" "-2"
          MOUSE_BTN6 run "mixer" "pcm" "+2"
          MOUSE_BTN1 cycle sub-visibility
          MOUSE_BTN7 add chapter -1
          MOUSE_BTN8 add chapter 1
          

          youtube-dl 非常適合觀看在線托管的視頻,使用 -f bestvideo+bestaudio/best --all-subs --embed-subs 命令可獲得最高質量的視頻。

          作為音樂播放器, MOC 不再活躍開發,但它仍是一個簡易的播放器,可以播放各種可能的格式,包括最不常用的 Chiptune 格式。在 AUR 中有一個 補丁 增加了 PulseAudio 支持。即使在 CPU 時鐘頻率降到 800 MHz, MOC 也只使用了單核 CPU 的 1-2% 。

          moc


          我的音樂收藏夾保存在我的家庭服務器上,因此我可以從任何地方訪問它。它使用 SSHFS 掛載并自動安裝在 /etc/fstab/ 目錄下:

          root@server:/media/media /mnt/media fuse.sshfs noauto,x-systemd.automount,idmap=user,IdentityFile=/root/.ssh/id_rsa,allow_other,reconnect 0 0
          

          跨平臺構建

          除了 Linux 本身,它對于構建任何主流操作系統的軟件包都很優秀! 一開始,我使用 QEMU 與舊版 Debian、 Windows 以及 Mac OS X VM 一起構建這些平臺。

          現在我在舊版 Debian 發行版上轉而使用 chroot (以獲得最大的 Linux 兼容性),在 Windows 上使用 MinGW 進行交叉編譯,在 Mac OS X 上則使用 OSXCross 。

          用于 構建 DDNet 的腳本以及 更新庫構建的說明 的腳本都基于這個。

          備份

          通常,我們都會忘記備份。即使這是最后一節,它也不應該成為事后諸葛。

          十年前我寫了 rrb (反向 rsync 備份)重新封裝了 rsync ,因此我只需要將備份服務器的 root SSH 權限授予正在備份的計算機。令人驚訝地是,盡管我一直在使用 rrb ,但它在過去十年里沒有任何改變。

          備份文件直接存儲在文件系統中。使用硬鏈接實現增量備份(--link-dest)。一個簡單的 配置 定義了備份保存時間,默認為:

          KEEP_RULES=( \
             7  7 \ # One backup a day for the last 7 days
            31  8 \ # 8 more backups for the last month
           365 11 \ # 11 more backups for the last year
          1825  4 \ # 4 more backups for the last 5 years
          )
          

          因為我的一些計算機沒有靜態 IP / DNS 但仍想使用 rrb 備份,那我會使用反向安全隧道(作為 systemd 服務):

          [Unit]
          Description=Reverse SSH Tunnel
          After=network.target
          
          [Service]
          ExecStart=/usr/bin/ssh -N -R 27276:localhost:22 -o "ExitOnForwardFailure yes" server
          KillMode=process
          Restart=always
          
          [Install]
          WantedBy=multi-user.target
          

          現在,隧道運行備份時,服務器可以通過 ssh -p 27276 localhost 命令或者使用 .ssh/config 到達服務器端。

          Host cr-remote
           HostName localhost
           Port 27276
          

          在談及 SSH 技巧時,有時由于某些中斷的路由會很難訪問到服務器。在那種情況下你可以借道其他服務器的 SSH 連接,以獲得更好的路由。在這種情況下,你可能通過美國連接訪問到我的中國服務器,而來自德國的不可靠連接可能需要幾個周:

          Host chn.ddnet.tw
           ProxyCommand ssh -q usa.ddnet.tw nc -q0 chn.ddnet.tw 22
           Port 22
          

          結語

          感謝閱讀我工具的收藏。這其中我也許遺漏了許多日常中自然成習慣的步驟。讓我們來看看我的軟件設置在下一年里能多穩定吧。如果你有任何問題,隨時聯系我 dennis@felsin9.de 。

          在 Hacker News 下評論吧。


          via: hookrace.net

          作者: Dennis Felsing 選題: lujun9972 譯者: chenmu-kk 校對: wxy

          本文由 LCTT 原創編譯, Linux中國 榮譽推出

          點擊“了解更多”可訪問文內鏈接

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

          1、下載安裝:http://downloads.sourceforge.net ... 206451&big_mirror=0

          # tar jxvf msmtp-1.4.16.tar.bz2
          # cd msmtp-1.4.16
          # ./configure --prefix=/usr/local/msmtp
          # make
          # make install
          

          2、創建msmtp配置文件和日志文件(host為郵件域名,郵件用戶名test,密碼123456)

          # vim ~/.msmtprc
          account default 
          host 126.com 
          from test@126.com 
          auth login 
          user test 
          password 123456 
          logfile ~/.msmtp.log 
          # chmod 600 ~/.msmtprc
          # touch ~/.msmtp.log
          

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

          # vim ~/.muttrc
          set sendmail="/usr/local/msmtp/bin/msmtp" 
          set use_from=yes 
          set realname="memory" 
          set from=test@126.com 
          set envelope_from=yes 
          set rfc2047_parameters=yes 
          set charset="utf-8" 
          

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

          # echo "郵件內容123456" | mutt -s "郵件標題測試郵件" -a /scripts/test.txt test@126.com
          

          二、使用Free命令監控系統內存

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

          # free -m 
          (執行結果如下樣式)
          total used free shared buffers cached
          Mem: 3952 3414 538 0 168 484
          -/+ buffers/cache: 2760 1191
          Swap: 8191 86 8105
          

          2、查看截取剩余內存free的數值命令:

          (1) 物理內存free值:# free -m | grep Mem | awk '{print $4}'
          (2) 緩沖區的free值:# free -m | grep - | awk '{print $4}'
          (3) Swap分區free值:# free -m | grep Swap | awk '{print $4}'
          

          3、編寫內存監控的腳本文件:

          # vim /scripts/free-mem.sh
          #!/bin/bash 
          #使用free命令監控linux系統內存變化 
          #取系統當前時間(以追加的方式寫入文件>>) 
          date >> /scripts/date-time.txt 
          #抓取物理內存free值(以追加的方式寫入文件>>) 
          echo Mem-free: `free -m | grep Mem | awk '{print $4}'`M >> /scripts/mem-free.txt 
          #抓取緩沖區的free值(以追加的方式寫入文件>>) 
          echo buffers/cache-free: `free -m | grep - | awk '{print $4}'`M >> /scripts/buffers-free.txt 
          #抓取Swap分區free值(以追加的方式寫入文件>>) 
          echo Swap-free: `free -m | grep Swap | awk '{print $4}'`M >> /scripts/swap-free.txt 
          #逐行連接上面的時間和內存相關行數據(每次重新寫入文件>) 
          paste /scripts/date-time.txt /scripts/mem-free.txt /scripts/buffers-free.txt /scripts/swap-free.txt > /scripts/freemem.txt 
          # chmod a+x /scripts/free-mem.sh
          # /scripts/free-mem.sh
          

          4、查看內存監控的結果文件:

          # cat /scripts/freemem.txt
          

          5、編寫free結果文件郵件發送腳本:

          # vim /scripts/sendmail-mem.sh
          #!/bin/bash 
          #把生成的freemem.txt文件通過郵件發送給用戶 
          #提取本服務器的IP地址信息 
          IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "` 
          #提取當前日期時間 
          today=`date -d "0 day" +%Y年%m月%d日` 
          #發送內存監控結果郵件 
          echo "這是$IP服務器$today的內存監控報告,請下載附件。" | mutt -s "$IP服務器$today內存監控報告" -a /scripts/freemem.txt test@126.com
          # chmod a+x /scripts/sendmail-mem.sh
          

          三、監控系統交換分區Swap的情況,當使用超過80%的時候發告警郵件

          # vim /scripts/swap-warning.sh
          #!/bin/bash 
          #提取本服務器的IP地址信息 
          IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "` 
          #系統分配的交換分區總量 
          swap_total=`free -m | grep Swap | awk '{print $2}'` 
          #當前剩余的交換分區free大小 
          swap_free=`free -m | grep Swap | awk '{print $4}'` 
          #當前已使用的交換分區used大小 
          swap_used=`free -m | grep Swap | awk '{print $3}'` 
          if ((swap_used !=0)); then 
          #如果交換分區已被使用,則計算當前剩余交換分區free所占總量的百分比,用小數來表示,要在小數點前面補一個整數位0 
          swap_per=0`echo "scale=2;$swap_free/$swap_total" | bc` 
          #設置交換分區的告警值為20%(即使用超過80%的時候告警)。 
          swap_warn=0.20 
          #當前剩余交換分區百分比與告警值進行比較(當大于告警值(即剩余20%以上)時會返回1,小于(即剩余不足20%)時會返回0 ) 
          swap_now=`expr $swap_per > $swap_warn` 
          #如果當前交換分區使用超過80%(即剩余小于20%,上面的返回值等于0),立即發郵件告警 
          if (($swap_now==0)); then 
          echo "$IP服務器swap交換分區只剩下 $swap_free M 未使用,剩余不足20%,使用率已經超過80%,請及時處理。" | mutt -s "$IP 服務器內存告警" test@126.com
          fi 
          fi 
          # chmod a+x /scripts/swap-warning.sh
          

          四、加入任務計劃:內存每十分鐘檢測一次,有告警則立即發郵件(十分鐘發一次),內存檢測結果郵件每天早上8點發一次

          # crontab -e
          */10 * * * * /scripts/free-mem.sh 
          */10 * * * * /scripts/swap-warning.sh 
          0 8 * * * /scripts/sendmail-mem.sh 
          # service crond restart
          

          關注微信公眾號:安徽思恒信息科技有限公司,了解更多技術內容……


          主站蜘蛛池模板: 国产成人精品一区二区三区| 国产在线视频一区二区三区98| 亚洲国产一区二区a毛片| 日韩一区二区超清视频| 无码AV中文一区二区三区| 精品一区二区三区四区| 一区二区三区免费电影| 国产精品亚洲产品一区二区三区 | 久久精品国产一区二区三区肥胖| 亚洲国产综合精品中文第一区| 国产成人无码一区二区在线播放| 久久国产免费一区| 亚洲电影一区二区| 日韩一区二区三区四区不卡| 欧美激情国产精品视频一区二区| 在线欧美精品一区二区三区| 少妇一夜三次一区二区| 精品理论片一区二区三区| 日本一区二区三区在线网| 国产福利电影一区二区三区,亚洲国模精品一区 | 久久国产午夜精品一区二区三区| 国产精品一区三区| 亚洲国产精品一区第二页| 2020天堂中文字幕一区在线观 | 在线免费一区二区| 国产无人区一区二区三区| 成人国产精品一区二区网站| A国产一区二区免费入口| 无码精品久久一区二区三区 | 人妻夜夜爽天天爽一区| 免费精品一区二区三区在线观看| 搜日本一区二区三区免费高清视频 | 波多野结衣一区二区三区88| 亚洲一区二区精品视频| 日韩一区二区电影| 手机福利视频一区二区| 一区二区视频在线免费观看| 乱色精品无码一区二区国产盗| 国产精品视频分类一区| 亚洲码欧美码一区二区三区| 一区二区国产在线观看|