百度空间 | 百度首页 
 
查看文章
 
磁盘容量检测并发送邮件通知脚本
2009-10-10 14:54

----------------------------------------------------

mon-disk脚本:检测磁盘使用情况并

sendmail_with_smtp_auth:无需配置邮件服务器直接发送待认证的邮件脚本

----------------------------------------------------

#!/bin/sh
#脚本名:mon-disk
#定义139邮箱,可以发送短信通知,免费的
rpct_to='MAIL_TO_ADDRESS'
#定义发件箱
mail_from='MAIL_FROM_ADDRESS'
#邮件标题
mail_title='43磁盘检测报告'
mail_demo=/opt/sbin/sendmail_with_smtp_auth
#磁盘报告
disk_free_report='/opt/sbin/disk_report'
disk_status_now='/opt/sbin/disk_status_now'
lines='----------------------------------------------'
#磁盘报告标题
title='磁盘监测,时间:'
#服务器名
servername='SERVERNAME'
#服务器ip
ip='IP_ADDRESS'
context1='超过80%使用的磁盘情况,如下,请及时清理'
context2='已用% 挂载点'
cat /dev/null > $disk_free_report
ts=`(date +%Y-%m-%d-%H:%M:%S)`
#当有磁盘容量使用超过70的,就把对应的挂载点取出,并发邮件通知
df -P | awk -F'%' '{print $1,$2}' | awk 'NR>1 && $5>80 {print $5,$6}' > $disk_status_now
#num=`cat $disk_status_now | wc -l`
#if [ $num -gt 0 ];then

if [ -s $disk_status_now ];then
         echo -e "$title$ts\n$lines\n$servername\n$ip\n$context1\n$lines\n$context2\n" >>$disk_free_report
         cat $disk_status_now >>$disk_free_report
         echo -e "$lines\n" >>$disk_free_report
# 调用发送带认证的邮件脚本(免去了配置邮件服务器的麻烦)
         $mail_demo "$mail_from" "$rpct_to" "$mail_title" "$disk_free_report"
else
     echo "fine"
fi

=============================

#!/bin/sh
# name of the shell:sendmail_with_smtp_auth
# how to use the shell:
#
# PATH_OF_THE_SHELL/sendmail_with_smtp_auth sender@mailsever.com recieve@domain.com subject mail_content_file
#
# linux shell:send mail with smtp auth
# this shell had been test in contos5.1
# test by xiutuo
# my blog url:http://hi.baidu.com/xiutuo
# define mail sender,reciver,subjest,mail content , mail sever,smtp auth user and user's password

# define mail sender
sender=$1

#define mail reciver
reciver=$2

# define mail subject(title)
subject=$3

# define mail content
email_content_txt=$4

# define mail server
mailserver='YOUR MAIL SERVER'

#
# define smtp auth user:mail user(sender)
# username with base64 encode,please translate with base64 tools,
# or with command line: echo "yourname_or_password" | base64
# but this command aways not work perfert.I still dont know why.
# also you can use Perl:comand look like:
# perl -MMIME::Base64 -e 'print encode_base64("xiutuo");'
# replace xiutuo with you own words,it works
# so i suggest you to access this website to translate them online.
# http://cnac.vicp.cc/WebSites/PHP/base64.php
#
smtp_auth_user="THE USERNAME OF YOUR MAIL WITH BASE64 ENCODING "
smtp_auth_pwd="THE PASSWORD OF YOUR MAIL WITH BASE64 ENCODING"

#---------------------
if [ "$#" != 4 ]; then
echo
echo "Usage: $0 sender@mailsever.com recieve@domain.com subject mail_content_file"
echo
exit 3
fi
# create funcation for mail_content_file
mail_content(){
cat << EOF
From: <$sender>
To: <$reciver>
Subject: $subject
Date: `date` +0800
Mime-Version: 1.0
Content-Type: text/plain; charset="gb2312"; format=flowed
X-Mailer: centos5 xiutuo mail shell with smtp auth
X-MimeOLE: xiutuo's mta--Powered by xiutuo--author's blog: http://hi.baidu.com/xiutuo/

EOF
test -r $email_content_txt && cat $email_content_txt
}
send_mail(){
(
sleep 5
for comm in "ehlo $mailserver" "auth login" "$smtp_auth_user" "$smtp_auth_pwd" "mail from:$sender" "rcpt to:$reciver" "data"
do
echo "$comm";sleep 3
done
mail_content
sleep 3;echo "."
)| telnet $mailserver 25
}
send_mail


类别:linux-shell | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu