环境RHEL 5

首先安装sendEmail

 

1.下载SendEmail安装包

wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz

 

2.安装SendEmail

tar zxvfsendEmail-v1.56.tar.gz 

cdsendEmail-v1.56

cp sendEmail/usr/local/bin 

chmod 0755/usr/local/bin/sendEmail

3.使用测试

 

/usr/local/bin/sendEmail –f  abc1@test.cn  –t own@test.cn –s mail.test.cn –u “owen test”–xu abc1@test.cn –xp 123456  –m owen-test

提示

Apr 19 14:39:21localhost sendEmail[10158]: Email was sent successfully!

发送成功!

参数解释:

-f 表示发送者的邮箱

-t 表示接收者的邮箱

-s 表示SMTP服务器的域名或者ip

-u 表示邮件的主题

-xu 表示SMTP验证的用户名

-xp 表示SMTP验证的密码(注意,这个密码貌似有限制,例如我用d!5neyland就不能被正确识别)

-m 表示邮件的内容

-cc 表示抄送

-bcc 表示暗抄送

sendEmail 安装部分参照的是以下链接 

http://lihuipeng.blog.51cto.com/3064864/658408

1.编辑查询SQL脚本

cd /bak/bat/

vi daily_count.sql

添加上以下内容

col每日统计 format a20;
select '
时间:' || to_char( sysdate -1 , 'yyyy-mm-dd') 每日统计 from dual ;
select count (*) 
当日业务 from
productA a
where a .dep= '1001' and
to_char(a .time, 'yyyy-mm-dd')=to_char (sysdate- 1 ,'yyyy-mm-dd' );
select count (*) 
总业务量 from productA a
where a .dep = '1001'
and to_char (a.time,'yyyy-mm-dd' )< to_char ( sysdate ,'yyyy-mm-dd' ) 
2.编辑生成统计结果文件

vi daily_count.sh

#!/bin/bash
DATE=`date -d '-1 days' +"%Y%m%d"`
su - oracle -c "sqlplus testuser/testpasswd"<<EOF
spool /bak/amount/amount_$DATE.txt;
@/bak/bat/daily_count.sql;
spool off;
exit;

3.发送邮件脚本

vi send_d_count.sh

#!/bin/bash
DATE=`date -d '-1 days' +"%Y%m%d"`
sed -i '/SQL/d' /bak/amount/amount_$DATE.txt
sed -i '/^$/d' /bak/amount/amount_$DATE.txt
sed -i 's/^ *//' /bak/amount/amount_$DATE.txt
/usr/local/bin/sendEmail -f henry@testmail.com.cn -t kaka@testmail.com.cn wang@testmail.com.cnxu@testmail.com.cn -cc henry@testmail.com.cn -s mail.testmail.com.cn -u"daily report" -m "daily report" -xu henry@testmail.com.cn-xp 10086 -a "/bak/cert_amount/amount_$DATE.txt"

-- daily_count.sh send_d_cout.sh内容本来是放在同一个文件里的,但是在执行完daily_count.sh 里exit后后面的命令无法执行,故拆分为两个脚本

 

4.配置定时执行计划

vi /etc/crontab

15 15 * * * root /bak/bat/daily_count.sh&& /bak/bat/send_d_count.sh

#每日下午3点十五分准时发送给指定邮箱