前面的一个需求,需要将获取的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