第三方业务电子影票监控脚本

电子影票.sh文件内容:

#!/bin/sh
#FileName: Check_film.sh
#make by GuoYanLiang
export LANG="zh_CN.GB2312"
export LC_ALL="zh_CN.GB2312"
export LC_CTYPE="zh_CN.GB2312"
#locale
CheckDir=/home/oracle/gyl/film
[ ! -d "$CheckDir" ] && mkdir -p $CheckDir
cd $CheckDir
MailFile=/home/oracle/gyl/film/MailSendFile.log
echo '您好:' >$MailFile;
echo "" >>$MailFile;
#====================================================init====================================================
init()
{
#IPAddress=`ifconfig|grep 'inet addr:'|head -1|awk '{print $2}'|sed 's/addr://g'`;
IPAddress="电商数据库";
NOWTIME=`date +%F-%H:%M`;
MAILTO="[email protected],[email protected],[email protected]";
MAIL_SUB="电子影片维护";
MAIL_FROM="运维组";
MAIL_SERVER="192.168.18.8"
MAIL_SERVER_PORT="22"
ROOT_ID_RSA=~/.ssh/18.8_id_rsa
State=OK
}
#====================================================mhead====================================================
mhead()
{
echo "" >>$MailFile
echo "服务器 : $IPAddress" >>$MailFile
echo "状  态 : $State" >>$MailFile
echo "时  间 : $NOWTIME" >>$MailFile
echo "" >>$MailFile;
}
#====================================================smail====================================================
smail()
{
scp -i $ROOT_ID_RSA -P $MAIL_SERVER_PORT $MailFile root@$MAIL_SERVER:$MailFile
ssh -i $ROOT_ID_RSA -p $MAIL_SERVER_PORT root@$MAIL_SERVER  "export LANG=zh_CN.GB2312;export LC_ALL=zh_CN.GB2312;export LC_CTYPE=zh_CN.GB2312;mail -s $MAIL_SUB $MAILTO -F $MAIL_FROM < $MailFile;cp /dev/null $MailFile;"
}
#====================================================FilmSQL====================================================
FilmSQL()
{
SQL_FilmFull="select DISTINCT a.filmname from (select t.city,t2.id as filmid,t2.code as filmcode,t2.name as filmname,t2.language,t2.type,
t2.release_time,t2.director,t2.protagonist,t2.run_time,t2.spic_path,t2.pic_path as film_pic_path,t2.is_recommended as film_is_recommended 
from tc_cinema t left join tc_cinema_film t1 on t1.cinema_id=t.id left join tc_film t2 on t2.id=t1.film_id where t.is_visible=1 
and ((select count(*) from tc_film_schedule_now_view b left join tc_cinema b1 on b1.id=b.cinema where b.film=t2.id 
and b.cinema=t.id)>0 or t.is_pass=1)) a;"
echo $SQL_FilmFull > SQL_FilmFull.sql
SQL_FilmCity="select DISTINCT a.city from (select t.city,t2.id as filmid,t2.code as filmcode,t2.name as filmname,t2.language,t2.type,t2.release_time,
t2.director,t2.protagonist,t2.run_time,t2.spic_path,t2.pic_path as film_pic_path,t2.is_recommended as film_is_recommended from tc_cinema t 
left join tc_cinema_film t1 on t1.cinema_id=t.id left join tc_film t2 on t2.id=t1.film_id where t.is_visible=1 
and ((select count(*) from tc_film_schedule_now_view b left join tc_cinema b1 on b1.id=b.cinema where b.film=t2.id 
and b.cinema=t.id)>0 or t.is_pass=1)) a;"
echo $SQL_FilmCity > SQL_FilmCity.sql
SQL_FilmUpdata="select DISTINCT a.filmname from (select t.city,t2.id as filmid,t2.code as filmcode,t2.name as filmname,t2.language,t2.type,
t2.release_time,t2.director,t2.protagonist,t2.run_time,t2.spic_path,t2.pic_path as film_pic_path,t2.is_recommended as film_is_recommended 
from tc_cinema t left join tc_cinema_film t1 on t1.cinema_id=t.id left join tc_film t2 on t2.id=t1.film_id where t.is_visible=1 
and ((select count(*) from tc_film_schedule_now_view b left join tc_cinema b1 on b1.id=b.cinema where b.film=t2.id and b.cinema=t.id)>0 or t.is_pass=1)) a 
where a.language is null or a.type is null or a.protagonist is null or a.spic_path is null or a.film_pic_path is null;"
echo $SQL_FilmUpdata > SQL_FilmUpdata.sql
SQL_FilmID="select DISTINCT a.filmid from (select t.city,t2.id as filmid,t2.code as filmcode,t2.name as filmname,t2.language,t2.type,
t2.release_time,t2.director,t2.protagonist,t2.run_time,t2.spic_path,t2.pic_path as film_pic_path,t2.is_recommended as film_is_recommended 
from tc_cinema t left join tc_cinema_film t1 on t1.cinema_id=t.id left join tc_film t2 on t2.id=t1.film_id where t.is_visible=1 
and ((select count(*) from tc_film_schedule_now_view b left join tc_cinema b1 on b1.id=b.cinema where b.film=t2.id 
and b.cinema=t.id)>0 or t.is_pass=1)) a;"
echo $SQL_FilmID > SQL_FilmID.sql
}
#====================================================FilmUpdateflag====================================================
FilmUpdateflag()
{
updateflag=7
flag=0
while [ $updateflag -eq 7 ]; do
updatefreq=`su - oracle -c "sqlplus -s SHOPPING/shopping1234A"<<EOF
  conn SHOPPING/shopping1234A
  set pages 0
  set head off
  set feed off
  select STATE from tc_movie_updatefreq;
EOF`
answer=$?
#echo "answer:$answer"
if [ "$answer" != "0" ]
then
echo "获取影片定时任务更新状态失败!" >>$MailFile;
echo "程序已经异常退出..." >>$MailFile;
echo $(date "+%F %T") >>$MailFile;
State="影片更新状态获取失败"
mhead;
smail;
exit 10
fi
findflag=`echo $updatefreq | sed 's/^ *//g' | sed 's/ *$//g'`;
#echo "findflag:$findflag"
if [ $findflag = "7" ]
then
flag=7
#echo "影片正在更新..."
#echo $(date "+%F %T")
sleep 60
fi
if [ $findflag = "0" ]
then
if [ $flag -eq 7 ]
then
echo "影片已完成更新时间:" >>$MailFile;
echo $(date "+%F %T") >>$MailFile;
updateflag=0
else
echo "此时影片应该正在更新,但此时却没有更新" >>$MailFile;
echo "程序已经自动退出..." >>$MailFile;
echo $(date "+%F %T") >>$MailFile;
State="影片应该在更新,但是却没更新"
mhead;
smail;
exit 20
fi
fi
done 
}
#====================================================FilmFull====================================================
FilmFull()
{
su - oracle -c "sqlplus -s SHOPPING/shopping1234A"<<EOF
set pages 0
set head off
set feed off
spool /home/oracle/gyl/film/FileTmp.log;
@/home/oracle/gyl/film/SQL_FilmFull.sql;
spool off;
exit;
EOF
cat FileTmp.log|sed 's/^ *//g' | sed 's/ *$//g' >FilmFull.log
FilmCount=`cat FilmFull.log | wc -l`
echo "" >>$MailFile;
echo "正在上映影片 ( $FilmCount 部 ): " >>$MailFile
cat FilmFull.log >>$MailFile
}
#====================================================FilmCity====================================================
FilmCity()
{
su - oracle -c "sqlplus -s SHOPPING/shopping1234A"<<EOF
set pages 0
set head off
set feed off
spool /home/oracle/gyl/film/FileTmp.log;
@/home/oracle/gyl/film/SQL_FilmCity.sql;
spool off;
exit;
EOF
cat FileTmp.log|sed 's/^ *//g' | sed 's/ *$//g' >FilmCity.log
CityNum=`cat FilmCity.log | wc -l`
#echo $CityNum
if [ "$CityNum" != "16" ]
then
State=NO
echo "" >>$MailFile
echo "影片无数据的地市:" >>$MailFile
FilmCity=(340100 341000 340200 341100 340300 341200 340400 341300 340500 341500 340600 341600 340700 341700 340800 341800)
FilmCityHan=(合肥市 黄山市 芜湖市 滁州市 蚌埠市 阜阳市 淮南市 宿州市 马鞍山市 六安市 淮北市 亳州市 铜陵市 池州市 安庆市 宣城市)
FilmCity_Num=${#FilmCity[@]}
#echo $FilmCity_Num
for (( i=0; i<$FilmCity_Num; i++ ))
do 
cat FilmCity.log | grep ${FilmCity[i]}
if [ $? != 0 ] ; then
echo "${FilmCity[i]} : ${FilmCityHan[i]} 没有影片数据!" >>$MailFile
fi
done
else
echo "" >>$MailFile
echo "所有地市都有影片数据!" >>$MailFile
fi
}
#====================================================FilmUpdata====================================================
FilmUpdata()
{
su - oracle -c "sqlplus -s SHOPPING/shopping1234A"<<EOF
set pages 0
set head off
set feed off
spool /home/oracle/gyl/film/FileTmp.log;
@/home/oracle/gyl/film/SQL_FilmUpdata.sql;
spool off;
exit;
EOF
cat FileTmp.log|sed 's/^ *//g' | sed 's/ *$//g' >FilmUpdata.log
result=`cat FilmUpdata.log`
if [ "$result" != "" ]
then
State=NO
echo "" >>$MailFile
echo "影片需要更新:" >>$MailFile
cat FilmUpdata.log >>$MailFile
else
echo "" >>$MailFile
echo "影片无需更新!" >>$MailFile
fi
}
#====================================================FilmID====================================================
FilmID()
{
su - oracle -c "sqlplus -s SHOPPING/shopping1234A"<<EOF
set pages 0
set head off
set feed off
spool /home/oracle/gyl/film/FileTmp.log;
@/home/oracle/gyl/film/SQL_FilmID.sql;
spool off;
exit;
EOF
cat FileTmp.log|sed 's/^ *//g' | sed 's/ *$//g' >FilmID.log
FilmIDCount=`cat FilmID.log | wc -l`
if [ "$FilmIDCount" != "$FilmCount" ]
then
State=NO
echo "" >>$MailFile
echo "影片需要合并,请手动检查需要合并影片!" >>$MailFile;
else
echo "" >>$MailFile
echo "影片无需合并!" >>$MailFile;
fi
}
#====================================================Main====================================================
init;
FilmSQL;
FilmUpdateflag;
FilmFull;
FilmCity;
FilmUpdata;
FilmID;
mhead;
smail;
echo "Checking finished successfully!"

猜你喜欢

转载自blog.csdn.net/guoyanliang1985/article/details/80906595
今日推荐