【主機】傳送郵件指令碼的改進

楊奇龍發表於2011-08-02
前面的一個需求,需要將獲取的csv檔案直接複製到另一個伺服器。
要求:
1 每天執行
2 減少生成的csv檔案的累積
3 傳送到其他伺服器時,要標註檔案的產生日期
這裡使用了 FILENAME=IM_REPORT_ERRINFO.csv 固定名稱,每次生成時覆蓋上一次的檔案,從而減少生成檔案的累積;使用中間tempfile 在複製的時候將原始檔複製成帶有時間的目標檔案。
#!/bin/sh
#function: get data from database and keep them in csv mode
#then send the log and the csv file to var $TO
#author: yang qilong
#date: 2011 08 01
TODAY=`date +"%Y_%m_%d_%H%M%S"`
DIR='HUGE_DUMP_DEST'
#FILENAME=IM_REPORT_ERRINFO_$TODAY.csv
FILENAME=IM_REPORT_ERRINFO.csv
SQLCMD='select * from rnd.im_report_errinfo_csv'
LOGFILE=/home/admin/yangql/get_im_report_errinfo.log
TEMPFILE=/tmp/IM_REPORT_ERRINFO_`date +"%Y_%m_%d"`.csv
FROM=qilong.yangql@yangql.com
TO=yangql@163.com

sqlplus / 1>$LOGFILE  2>&1 <
select sysdate from dual;
exec sys.csv.generate('$DIR','$FILENAME','$SQLCMD');
exit;
EOF!

attach_file_list=/arch/$FILENAME
cp $attach_file_list  $TEMPFILE

scp  $TEMPFILE 10.250.2.24:/home/admin/report_ipdiff >>$LOGFILE

/home/oracle/admin/bin/sendEmail -u "`whoami`@`hostname`:$attach_file_list" \
 -m  
 -f $FROM -s 172.18.100.3:25 -t $TO
 
exit 0

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-703861/,如需轉載,請註明出處,否則將追究法律責任。

相關文章