經常使用的shell腳本

1. 磁盤監控發信腳本

隨着數據文件的增長,磁盤可能會滿,所以須要監控某文件夾所在磁盤使用狀態,當使用率到達70%時發出警報,直接發送郵件到指定郵箱,能夠經過autosys調度系統結合shell命令寫出以下JIL腳本:shell

/*----------------------adw_uxdw1_monitor----------------------*/
insert_job:adw_uxdw1_monitor job_type:CMD
command:/bin/df -kh /adw/dw/appdata | /bin/sed -n '3p' | /bin/awk '{print substr($4,1,length($4)-1)}' | /bin/awk '{if($0>=70) print "exit 1"; else print "exit 0"}' | ksh
machine:adw
ownner:user@adw
peimission:
date_conditions:1
days_of_week:all
start_times:"03:00,09:00,15:00,21:00"
description:"to check disk space usage of directory /adw/dw/appdata"
std_out_file:">/adw/dw/appdata/log/adw_uxdw1_monitor.out"
std_err_file:">/adw/dw/appdata/log/adw_uxdw1_monitor.err"
alarm_if_fail:0

 /*----------------------adw_uxdw1_alter_mail----------------------*/
insert_job:adw_uxdw1_alter_mail job_type:CMD
command:/bin/mailx -s "Alert - Disk space usage of directory /adw/dw/appdata is greater than 70% on `date`" shanshan@gmail.com < /dev/null
machine:adw
ownner:user@adw
peimission:
date_conditions:0
start_times:e(adw_uxdw1_monitor)=1
description:"send alter eamail if the disk space usage is greater than 70%"
std_out_file:">/adw/dw/appdata/log/adw_uxdw1_alter_mail.out"
std_err_file:">/adw/dw/appdata/log/adw_uxdw1_alter_mail.err"
alarm_if_fail:1

1. df [選項] [文件]app

  • 用於顯示目前在Linux系統上的文件系統的磁盤使用狀況統計,這裏針對一個文件夾,會顯示該文件夾所在磁盤信息
  • -h human-readable用人類可讀的方式顯示,具體就是好比size是顯示468M而不是479156
  • -k like --block_size=1K 這裏可加可不加

2. sed -hnV-f<script文件> or nl /etc/file | sed 'action'spa

  • -n --silent 靜靜地去掉自動空間,僅顯示處理後結果
  • '3p' print第三行。這裏由於文件名長出字段長度單獨佔了一行,因此use%在第三行

3. ... | awk '{[pattern] action}' --用法之一code

  • print 打印出第四個變量($4從1開始計數,這裏由於文件名在上一行,因此第五個字段use%在這裏是第四個字符)截取的從第一個到倒數第二個字符的內容。也就是去掉最後一個字符%
  • '{}'裏面能夠用if, else。 exit是一個狀態,至關於返回值。

2. 任務完成發信腳本

任務完成時經常須要發信通知,這裏僅列出發信命令,至於任務完成,這裏經過腳本直接記錄在文件OK.csv中(完成日,任務簡稱SRC,任務來源地,行數)這樣記錄。所以發信命令經過讀取該文件完成。
/bin/mailx -s "$${REGION}-REGION: TheDate:bin\cat /usr/staging/OK.csv | grep SRC | awk -F"," '{print }'"ip

4. mailx -s "email subject" aaa@abc.com < fileit

  • 用於發送郵件的命令,-s是subject的意思,通常都要帶
  • < file 指的是郵件內容爲file的內容
相關文章
相關標籤/搜索