採用Shell及AWK指令碼實現磁碟使用空間監控

2021-06-02 01:08:54 字數 1148 閱讀 3740

背景:

在應用程式中,經常需要配置ftp空間存放資料,同樣資料庫也需要大量的磁碟存放業務資料。如果ftp和資料庫磁碟空間不夠,卻沒有及時通知相關人員進行處理,就會導致程式錯誤或者資料庫無法儲存資料。這類故障是及其嚴重的。

shell指令碼(disk_space_warn.sh):

#!/bin/bash #

# 監控磁碟使用空間是否超限

# chm,

[email protected]

# 2011/11/22

## config.txt配置需要監控磁碟路徑,格式為:磁碟路徑|使用限制|超限告警資訊

# 每次告警資訊會記錄在檔案warn.log中,這裡可以修改邏輯,以簡訊的方式傳送告警#

username=$(whoami)

deploy_dir="/home/$/disk_space_warn"

cat $/config.txt | while read tmp

dodisk_path=$(echo $ | awk -f\| '')

limit=$(echo $ | awk -f\| '')

warn_info=$(echo $ | awk -f\| '')

is_warn=$(df -h $ | awk -v limit="$" -f disk_space_warn.awk)

if [ $ $" >> $/warn.log

fidone

awk指令碼(disk_space_warn.awk):

# 僅取第二行進行分析, 因awk中比較方便進行小數、整數、字串比較,

# 而bash中可以方便地進行整形比較,所以建議在awk中進行此類操作

nr==2 else

}採用crontab配置定時任務:

crontab -e

末尾輸入如下內容:

*/10 * * * * sh [deploy_dir]/disk_space_warn.sh

注:1. 檢視crontab定時任務配置命令:crontab -l

2. [deploy_dir]為實際部署disk_space_warn.sh監控指令碼的路徑

shell指令碼之awk

一 什麼是awk awk其實相當於一門可以處理資料文字的語言,這麼說的原因是其具有很多類c語言的語法,如 變數,陣列,函式,流程控制等,其由aho,weinberger,kernighan大約在1977年開發完成,隨後被引入unix linux中。二 awk可以幹什麼 awk是乙個非常強大的資料處理...

shell指令碼 awk的用法

語法格式 awk 選項 指令 操作檔案 常用選項 f 指定分隔符,分隔符用 引起來 v var value在awk程式開始之前指定乙個值valu給變數var,這些變數值用於awk程式的begin快 f 後面跟乙個儲存了awk程式的檔案,代替在命令列指定awk程式 awk 1.txt 逐行讀取檔案1....

shell指令碼之awk 一

2.linux中常用的awk編譯器版本有mawk,gawk。redhat使用的是gawk,ubuntu使用的是mawk.1.逐行掃瞄檔案,尋找匹配你指定模式的行,並在這些行上執行你指定的操作 2.awk 基本結構包括模式匹配 用於找到要處理的行 和處理過程 即處理動作 3.awk 有兩個特殊的模式 ...