写的shell小记(1)

来源:互联网 发布:cacti监控windows 编辑:程序博客网 时间:2024/06/15 14:00

也不知道写过了多少行的shell了,一直也没有做什么笔记,算了,汇个总,复制上来看看:

本脚本完成文件夹目录和数据库中数据的核对

#!/bin/bash
#edit on 20090825
###################### 数据库 相关信息 ######################                         
DATA_SERVER_NAME=ora8i                                                                
DATA_USER=XXXXX #要屏蔽掉,否则死定了                                                                        
DATA_PASS=XXXXX                                                                      
###################### 数据库 相关信息 ######################                         
function lryinit()
{
echo "准备初始化..."
tmpyear=`date +%Y`                                                           
tmpdate=`date +%m%d`
}
function lrycheckinput()
{
lrydate=$1                                                                 
echo $lrydate
if [ -z $lrydate ]                                                                   
then                                                                                  
echo "请输入账务月(默认为当日)[$tmpdate]"                                             
#read lrydate                                                                         
echo "准备执行${lrydate:=$tmpdate}日检查"                            
fi                                                                                    
}
function lrysqlexec()                                                                  
{                                                                                     
echo "$ORACLE_HOME/bin/sqlplus -s ${DATA_USER}/${DATA_PASS}@${DATA_SERVER_NAME} <<EOF
set feedback off;                                                                   
set pagesize 0;                                                                     
set tab on;                                                                         
set line 1000;                                                                      
set echo off;                                                                       
set trims on;                                                                       
$1;                                                                                 
quit;                                                                               
EOF"                                                                                
}
function lrycheckdatabase()
{
echo "检查数据库中下发文件总数"
lrysqlcycle="SELECT s.billing_cycle_id FROM sys_cycle s WHERE s.user_flag=1";
lrycycle=`lrysqlexec "$lrysqlcycle" | sh`
lrysqlcount="SELECT COUNT(*) FROM wzh.log_dispense_day w WHERE w.billing_cycle_id="$lrycycle" AND w.dispense_date="$lrydate"";
lrycount=`lrysqlexec "$lrysqlcount" | sh`
echo "数据库中下发文件总数为:$lrycount"
}
function lrycheckdatabak()
{
echo "准备检查备份文件夹的数据"
cd /settle3/test/data_bak/dis
bakcount=`ls -l *$tmpyear$lrydate* | wc -l`
echo "备份文件夹的数据为:$bakcount"
}
function checklogfile()
{
echo "检查日志文件"
cd /settle1/card2/script/lry/Log
if [ $1 -eq 1 ]
then
if [ -f check_dis_$tmpyear$lrydate.log ]
then
echo "日志文件存在,追加方式"
>> check_dis_$tmpyear$lrydate.log
else
echo "日志文件不存在,创建文件"
> check_dis_$tmpyear$lrydate.log
fi
fi
if [ $1 -eq 2 ]
then
if [ -f check_dis_$tmpyear${lrydate}_err.log ]
then
echo "错误日志文件存在,追加方式"
>> check_dis_$tmpyear${lrydate}_err.log
else
echo "错误日志文件不存在,创建文件"
> check_dis_$tmpyear${lrydate}_err.log
fi
fi
}
function lrycheckdiff()
{
if [ $lrycount -eq $bakcount ]
then
checklogfile 1
#cd /settle1/card2/script/lry/Log
echo "`date +%T` $lrydate数据下发正确" | tee -a check_dis_$tmpyear$lrydate.log
else
checklogfile 2
#cd /settle1/card2/script/lry/Log
#> check_dis_$tmpyear$lrydate_err.log
echo "`date +%T` $lrydate数据有差异,请核查" | tee -a check_dis_$tmpyear${lrydate}_err.log
fi
}
#检测是否报错
function testthis()
{
if [ $1 -eq 1 ]
then
bakcount=`expr $bakcount - 2`
echo "$bakcount"
else
echo "传参错误"
fi
}
function main()
{
lryinit
lrycheckinput $1
lrycheckdatabak
lrycheckdatabase
#testthis 1
lrycheckdiff
}
main $1