1. 程式人生 > >騰訊雲Linux伺服器搭建(八) 伺服器硬碟容量的監視指令碼實現

騰訊雲Linux伺服器搭建(八) 伺服器硬碟容量的監視指令碼實現

     昨天發生一件事兒,騰訊雲主機登入後,有一些命令執行失敗,提示硬碟容量不足。df -h 一看,硬碟容量用了100%。還好df/du能使用。用du 查了一下大檔案,發現時tomcat的日誌檔案有兩個異常,兩個都是十幾個G,把殘留的三十多個G的容量都佔了。每個留了1000行之後,先刪掉這兩個檔案,成功恢復系統到能正常使用狀態。Tomcat出現異常的原因還沒分析完,這裡先不說,先把硬碟容量監視做了。

    思路:以前做過類似的指令碼,但是手頭沒有了,只能重新寫了。初步想定分3步,首先寫指令碼統計硬碟使用資訊,並輸出到日誌檔案,方便以後分析用。第二,如果硬碟使用量超過警戒線發郵件通知。第三,定時執行指令碼。

    1,檢視硬碟使用量的指令碼,因為需要設境界值,所以設計了一個引數。把使用百分比作為境界值傳過去。

      1 #!/bin/sh
      2
      3 #check parameters
      4 if [ $# -ne 1 ]; then
      5     echo "[error] Please input a threshold for disk useage."
      6     exit 1
      7 fi
      8
      9 usagelimit=$1
     10
     11 #get mountpoint
     12 mountpoint=`mount | grep '^/dev/.* on /.* type ext' | awk '{print $3}'`
     13
     14 #get the info for every mountpoint
     15 for mpt in $mountpoint
     16 do
     17     #get device name
     18     devname0=`df -P $mpt | tail -1 | awk '{print $1}'`
     19     devname=`basename $devname0`
     20
     21     #create history file
     22     usagelog=/opt/scripts/log/stat-disk_$devname_$(date +%Y%m%d%H%M%S).log
     23
     24     #write header
     25     echo "date,total,used,available,usage % ($mpt)" > $usagelog
     26
     27     #write data MB
     28     echo `date +%Y-%m-%d`,`df -m -P $mpt | tail -1 | \
     29         awk '{printf("%d,%d,%d,%s", $2, $3, $4, $5)}' | sed 's/%//'` >> $usagelog
     30     #check useage
     31     using=`df -h -P $mpt | tail -1 | awk '{print $5}' | sed 's/%//'`
     32     if [ $using -gt $usagelimit ]; then
     33         addr=`ifconfig eth0 | grep "inet addr" | awk '{ print $2}' | awk -F: '{print $2}'`
     34         mail -s "[WARN] $addr Over threshold on disk [$mpt], useage${using}%]" 
[email protected]
< $usagelog 35 fi 36 done 37 38 exit 0

2,發郵件通知。在腳本里面用了mail -s "subject" 郵件地址 < 內容檔案實現了發郵件。

   如果是系統內使用者的話,直接傳送就可以了,但是這裡設定的是一個Outlook郵箱,所以需要設定能夠發外網的郵件。這臺雲主機是沒有架設郵件伺服器的,也沒有郵件轉送服務。只有一個郵件客戶端,那就需要設定使用第三方的郵件伺服器來發送郵件了。以前用的163郵箱做過,但是已經登入不了了,換QQ郵箱試一下。登入QQ郵箱,查看了一下,可以用客戶端進行收發郵件,但是需要認證,可以發行客戶端授權碼(相當於登入密碼)。照下圖進行設定,並記錄生成的授權碼。

QQ郵箱授權碼生成

然後進行郵件的設定:vi /etc/mail.rc

     68 set from=qq號碼@qq.com
     69 set smtp=smtp.qq.com
     70 set smtp-auth-user=qq號碼@qq.com
     71 set smtp-auth-password=生成的授權碼
     72 set smtp-auth=login

儲存後,進行一下測試:echo "Hello!" | mail -s "mail test" [email protected] ,成功。

   先安裝 cron

#安裝
yum install vixie-cron crontabs
#檢視已設定資訊
[[email protected]_0_12_centos scripts]# crontab -l
*/1 * * * * /usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &
#不知道為啥安裝上就有一個每分鐘執行的任務,開啟看了一下是騰訊雲的
#檢視啟動狀態,停止狀態,啟動一下。
[[email protected]_0_12_centos scripts]# service crond status
crond is stopped
[[email protected]_0_12_centos scripts]# service crond start
Starting crond:                                            [  OK  ]
#檢視是否設定了自己啟動,已經設定好了,不用再設定了,估計也是騰訊雲幫忙設定的
[[email protected]_0_12_centos scripts]# chkconfig --list crond
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
#追加上剛才寫的指令碼,10分鐘一次,警戒值設為80%
[[email protected]_0_12_centos scripts]# crontab -e
      1 */1 * * * * /usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &
      2 */10 * * * * /opt/scripts/check_disk_useage.sh 80 > /dev/null 2>&1 &

設定完畢,10分鐘後檢查了一下cron的日誌檔案,執行成功了。

遇到的坑:1,用到的ifconfig其他使用者沒有許可權,所以用root使用者執行的指令碼,也可以設定sudo user後,用sudo來實行。

2,日誌檔案寫的相對路徑,用cron實現的時候,日誌檔案沒輸出,改成用絕對路徑。

3,配置好郵件後,一值傳送失敗,後來發現騰訊雲的主機預設25埠是不能傳送到外網的。申請了一下解封后解決。選單在費用和工單旁邊。

 騰訊雲主機開通25福安口

相關推薦

centos7.3搭建SVN伺服器

步驟記錄: 1、yum install subversion 2、svnserve –version 檢查是否安裝成功 3、mkdir -p var/svn/project/first 來到根目錄,建一個專案目錄測試一下 4、svnadmin c

Linux伺服器搭建() 伺服器硬碟容量監視指令碼實現

     昨天發生一件事兒,騰訊雲主機登入後,有一些命令執行失敗,提示硬碟容量不足。df -h 一看,硬碟容量用了100%。還好df/du能使用。用du 查了一下大檔案,發現時tomcat的日誌檔案有兩個異常,兩個都是十幾個G,把殘留的三十多個G的容量都佔了。每個留了1000

Linux伺服器 centos7 Lampp環境搭建 vsftp搭建 ssl證書安裝 所遇到的問題

有人會問為什麼要選用centos7? 其實個人主要還是為了學習和嘗試一下,而且一般來說系統軟體優化了肯定是有原因的嘛,所以在時間允許專案不急的情況下,還是可以去試一試的!(專案急還是用自己熟悉的伺服器搭建就好了,不然出現問題一直解決不了會挺尷尬的) 首先遇到的第一個問題就是 cent

Linux伺服器 centos7 Lampp環境搭建 vsftp搭建 ssl證書安裝 所遇到的問題

有人會問為什麼要選用centos7? 其實個人主要還是為了學習和嘗試一下,而且一般來說系統軟體優化了肯定是有原因的嘛,所以在時間允許專案不急的情況下,還是可以去試一試的!(專案急還是用自己熟悉的伺服器搭建就好了,不然出現問題一直解決不了會挺尷尬的) 首先遇到的第

Linux伺服器搭建(九) Linux上DB2的客戶端實現資料的備份和恢復

問題:DB2伺服器裝在AIX上,不允許直接利用伺服器做資料的匯出匯入。但是由於專案需要,需要頻繁的對一些表進行資料的備份和恢復。所以只能在一個其他伺服器上安裝DB2客戶端,通過客戶端來實現資料的備份和恢復。 思路:先從IBM官網下載客戶端;然後安裝到一個應用伺服器上(Cen

Linux伺服器搭建(七) Apache+Tomcat+HTTPS加密的配置

       前面已經在一個主機上安裝了apache+git+openssl,實現了git伺服器的https驗證。還安裝了tomcat,在tomcat上架起了tomcat manager,Jenkins,和微信小程式的後臺程式。由於微信小程式必須走https,而且必須用預設埠

Linux伺服器搭建(四) Git伺服器搭建(通過https驗證)

先安裝git: 下載 #wget https://github.com/git/git/archive/v2.9.2.tar.gz 解壓 # tar zxvf v2.9.2.tar.gz # cd git-2.9.2 編譯安裝 # make configure # ./co

】自己搭建伺服器JavaEE環境

轉載地址:https://www.cnblogs.com/qlqwjy/p/8727487.html 感覺很專業的樣子,還沒有看完,更沒有實踐,找個機會實踐一下。 0.安裝SSH登入 1.生成公鑰對 ssh-keygen -t rsa -P ''   -P表示密

伺服器 Linux javaWeb伺服器部署

因為畢設需要(主要還是自己想玩),弄了一臺騰訊雲的伺服器,半年一百多塊錢,選擇的系統的centOS,需要部署java web專案上去,特此記錄。 登入伺服器 在騰訊雲上交完錢,進入控制中心,檢視伺服器的公網ip 不知道什麼原因,反正我點登入是登入

linux伺服器的環境配置與使用

一、騰訊雲linux雲伺服器配置LNMP環境1、登入騰訊雲伺服器首先我在騰訊雲的官網申請了一個學生版的伺服器,作業系統為CentOS 6.3 64位。接下去下載並安裝Xshell(一個遠端管理linux伺服器的客戶端軟體)。在執行該軟體之後,點選新建,在彈出的新建會話屬性視窗

安裝配置Apache+MariaDB伺服器並解決SQLSTATE[HY000] [1130] Host t '*’ is not allowed to connect to this se問題

具體的安裝方式(超詳細,可直接複製命令執行):https://www.qcloud.com/community/article/321718001489545422 安裝完後會出現以下問題(如果是遠端連線的話): 問題:SQLSTATE[HY000] [1130] Host '***.**.**

阿里Linux主機搭建VPN伺服器

本次搭建使用阿里雲華東節點ECS雲伺服器,作業系統:CentOS 6.5 64位 。 1、 伺服器端安裝軟體  1.1 首先安裝ppp,ppp是一種資料鏈路層協議,命令: #yum install -y ppp iptables  提示Complete! ,安裝成功;

:ubuntu搭建 FTP 文件服務

security pam erl 人的 列表 雲主機 swd lan oms 搭建 FTP 文件服務 安裝並啟動 FTP 服務 任務時間:5min ~ 10min 安裝 VSFTPD 使用 apt-get 安裝 vsftpd: sudo apt-get install

CentOS6.8搭建lnmp環境

lnmp環境 系統 pan 技術分享 pcre nmp ima style ges 一、安裝Ngnix 首先查看服務器系統的環境                    可以看出我的系統環境是(CentOS6.9 64位)      2. 安裝pcre和

Centos7.3搭建LNMP環境的一次記錄

大小 ins 操作 技術 style repos release val 鏡像 1.修改系統鏡像源 為了使安裝速度更快,在這裏我選擇網易鏡像源:http://mirrors.163.com/.help/centos.html 參考上述網址說明 首先備份/etc/yum.re

linux服務器分區方案

IT image linux 進入 分區方案 分區創建 新建 輸入 磁盤信息 剛剛在騰訊雲買了一臺服務器,剛買的服務器的數據盤都是需要自己來分區的,下面就記錄一下操作。 通過命令fdisk-l查看硬盤信息 可以看到有兩塊硬盤/dev/vda和

(Linux)安裝Redis。

-c net detail sans style any col linux ont 參考:https://blog.csdn.net/a575553272/article/details/79743802 指令:ps -ef | grep redis 查看啟動後的進程

(Linux)安裝.net core sdk2.1、net core runtime2.1

cor -m rod asp pac 安裝 core 分享圖片 spn 按照微軟指令安裝: sdk2.1:https://www.microsoft.com/net/download/linux-package-manager/centos/sdk-current 1.

的ftp搭建

xftp ets sta 問題 防火墻 ftp lis src file 一開始配置完後 發現用xftp鏈接登錄成功 但是列表無法列舉出來 然後又用力cmd、filezilla發現都是一個主動被動問題 pasv_enable=YES、pasv_min_port=60000、

Ubuntu16.04 搭建Git 服務

  一.安裝Git伺服器所需軟體 1.安裝git-core, openssh-server, openssh-client三個軟體。git-core是git的核心軟體; openssh-server、openssh-client是伺服器和客戶端傳輸檔案通過ssh協議。 輸入:sudo