数据相关脚本

#!/bin/sh
. /home/db2inst1/.profile
#数据上报程序
#author huodaihao
#获得系统
DATE=$(date +%Y%m%d)
DATE_TIME=$(date +'%Y%m%d%H%M%S')
ORG="Z2017112000011"


DBNAME="pbctjuat"
 
USERNAME="db2admin"

PASSWORD="db2@admin"


#shell文件目录
SHELL_PATH=/home/tianjing/sh
#csv文件基本路径
CSV_PATH=/home/tianjing/csv
#csv文件路径永久路径
CSV_SAVE_PATH=/home/tianjing/savecsv
#日志存放路径
LOG_PATH=/home/tianjing/log
#定义一个正在执行
TMPFILE=/home/tianjing/sh/shell_csv.tmp

#检查是否有其他的实
if [ -e ${TMPFILE} ]
then
        echo "Other instance is running!"
        exit 0    #退出本脚本的执行
else
        touch ${TMPFILE} #新建一个临时文件

        chmod 600 ${TMPFILE} 
fi


#设置一个

rap "rm -f ${TMPFILE}; exit" 0 1 2 3 9 15

echo "`date +%Y-%m-%d %T` ------------START----------">>${LOG_PATH}/load_data_${DATE}.log
#连接数据库   输出日志信息
db2 connect to $DBNAME  user $USERNAME using $PASSWORD
echo "`date +%Y-%m-%d %T` -清空ods_temp下的T_SC_MERCHANT_INFO,T_SC_MERCHANT_IM_DETAIL,T_SC_MERCHANT_EX_DETAIL,T_RBYHZHXX表的数据">>${LOG_PATH}/load_data_${DATE}.log
db2 "delete from ODS_TEMP.T_SC_MERCHANT_INFO "
db2 "delete from ODS_TEMP.T_SC_MERCHANT_IM_DETAIL "
db2 "delete from ODS_TEMP.T_SC_MERCHANT_EX_DETAIL "
db2 "delete from ODS_TEMP.T_RBYHZHXX "
db2 commit

for file_all_name in ${CSV_PATH}/*.csv

do    
            
    echo "$file_all_name --------------"
    #获取csv文件名称
    CSV_NAME=$(basename "$file_all_name")
    echo "$CSV_NAME----"
    echo "`date +%Y-%m-%d %T` csv文件的文件名称是:${CSV_NAME}">>${LOG_PATH}/load_data_${DATE}.log

         # gbk --> utf-8
    if file "${file_all_name}"|grep -q UTF-8 >/dev/null ; 
        then
        echo "csv is utf-8" >> ${LOG_PATH}/load_data_${DATE}.log

       else     
         echo "csv is gbk to utf-8 success" >> ${LOG_PATH}/load_data_${DATE}.log

                iconv -c -f gbk -t utf-8 ${file_all_name}> ${LOG_PATH}/temp_${CSV_NAME}
                rm -f  ${file_all_name}
                mv ${LOG_PATH}/temp_${CSV_NAME}   ${CSV_PATH}/${CSV_NAME}
                
        fi
    #截取1个字
    FLAG=${CSV_NAME:0:6}
    ORG_CODE=${CSV_NAME:9:14}
    LOAD_DATE=${CSV_NAME:24:8}
    #商户基本信息表
    TEMPLATE_FILE_ID1='20160813173727372741975374175096280'
    #商户入金支付明细
    TEMPLATE_FILE_ID2='16081318351835185705507814252728000'
    #商户出金支付明细
    TEMPLATE_FILE_ID3='16081318360836823267029553581420000'
    #融宝商户对应账号的信息
    TEMPLATE_FILE_ID4='16081318365236529830235585519220000'
    sed -i '1d' $file_all_name
    sed -i "s///-/g" $file_all_name


    if [ $FLAG = "SSJBXX" ]
    then
        db2 "update DPS.T_SYS_COLLECTION_LOG set VERIFY_STATUS=1 where FISCAL_TERM='${LOAD_DATE}' and ORG_ID='${ORG_CODE}' and TEMPLATE_FILE_ID='${TEMPLATE_FILE_ID1}'"
        echo "`date +%Y-%m-%d %T` load 商户基本信息数据">>${LOG_PATH}/load_data_${DATE}.log
        echo "1111111111111111"
        #商户基本信息
        db2 "LOAD client FROM '${file_all_name}' OF DEL MODIFIED BY CODEPAGE=1208 COLDEL, DECPLUSBLANK DATESISO INSERT INTO ODS_TEMP.T_SC_MERCHANT_INFO  NONRECOVERABLE  "
        db2 commit
    fi 
    if [ $FLAG = "SHRJMX" ]
    then 
        db2 "update DPS.T_SYS_COLLECTION_LOG set VERIFY_STATUS=1 where FISCAL_TERM='${LOAD_DATE}' and ORG_ID='${ORG_CODE}' and TEMPLATE_FILE_ID='${TEMPLATE_FILE_ID2}'"
        echo "`date +%Y-%m-%d %T` load 入金支付明细">>${LOG_PATH}/load_data_${DATE}.log
        #入金支付明细
        db2 "LOAD client FROM '${file_all_name}' OF DEL MODIFIED BY CODEPAGE=1208 COLDEL, DECPLUSBLANK DATESISO INSERT INTO ODS_TEMP.T_SC_MERCHANT_IM_DETAIL  NONRECOVERABLE"
        db2 commit
    fi
     if [ $FLAG = "SSCJMX" ]
    then
        db2 "update DPS.T_SYS_COLLECTION_LOG set VERIFY_STATUS=1 where FISCAL_TERM='${LOAD_DATE}' and ORG_ID='${ORG_CODE}' and TEMPLATE_FILE_ID='${TEMPLATE_FILE_ID3}'"
        echo "`date +%Y-%m-%d %T` load 出金支付">>${LOG_PATH}/load_data_${DATE}.log
        #出金支付明细
        db2 "LOAD client FROM '${file_all_name}' OF DEL MODIFIED BY CODEPAGE=1208 COLDEL, DECPLUSBLANK DATESISO INSERT INTO ODS_TEMP.T_SC_MERCHANT_EX_DETAIL  NONRECOVERABLE"
        db2 commit
    fi        
    if [ $FLAG = "RBYHXX" ]
    then    
        db2 "update DPS.T_SYS_COLLECTION_LOG set VERIFY_STATUS=1 where FISCAL_TERM='${LOAD_DATE}' and ORG_ID='${ORG_CODE}' and TEMPLATE_FILE_ID='${TEMPLATE_FILE_ID4}'"
        echo "`date +%Y-%m-%d %T`  load荣宝信息">>${LOG_PATH}/load_data_${DATE}.log
        #融宝银行账户信息
    db2 "LOAD client FROM '${CSV_PATH}/${CSV_NAME}' OF DEL MODIFIED BY CODEPAGE=1208 COLDEL, DECPLUSBLANK DATESISO INSERT INTO ODS_TEMP.T_RBYHZHXX  NONRECOVERABLE"
        db2 commit
    fi
    mv -f ${CSV_PATH}/${CSV_NAME}  ${CSV_SAVE_PATH}    

done
    echo  "`date +%Y-%m-%d %T` load ods_temp success">>${LOG_PATH}/load_data_${DATE}.log
    db2 "update DPS.T_SYS_COLLECTION_LOG set VERIFY_STATUS=1 where FISCAL_TERM='${LOAD_DATE}' and ORG_ID='${ORG_CODE}' and TEMPLATE_FILE_ID='${TEMPLATE_FILE_ID1}'"
    db2 "update DPS.T_SYS_COLLECTION_LOG set VERIFY_STATUS=1 where FISCAL_TERM='${LOAD_DATE}' and ORG_ID='${ORG_CODE}' and TEMPLATE_FILE_ID='${TEMPLATE_FILE_ID2}'"
    db2 "update DPS.T_SYS_COLLECTION_LOG set VERIFY_STATUS=1 where FISCAL_TERM='${LOAD_DATE}' and ORG_ID='${ORG_CODE}' and TEMPLATE_FILE_ID='${TEMPLATE_FILE_ID3}'"
    db2 "update DPS.T_SYS_COLLECTION_LOG set VERIFY_STATUS=1 where FISCAL_TERM='${LOAD_DATE}' and ORG_ID='${ORG_CODE}' and TEMPLATE_FILE_ID='${TEMPLATE_FILE_ID4}'"

    db2 "call ODS.P_PAY_TYSHXX_WLJYMX('${LOAD_DATE}','${ORG_CODE}')"
    echo  "`date +%Y-%m-%d %T` load ods success">>${LOG_PATH}/load_data_${DATE}.log    

    db2 "call DW.P_PAY_TYSHXX('${LOAD_DATE}','${ORG_CODE}','','')"

    db2 "call DW.P_PAY_WLJYMX('${LOAD_DATE}','${ORG_CODE}','','')"

    echo  "`date +%Y-%m-%d %T` load DW success">>${LOG_PATH}/load_data_${DATE}.log
    db2 commit;
    db2 terminate;
    rm -f ${TMPFILE}
    
    
#!/bin/sh

#----------------------------------------------------
#功能:将文件上传到FTP文件服务器
#
#时间:2015-03-22
#----------------------------------------------------

#FTP地址
IP_ADDRESS="192.168.0.111"
#FTP端存放目录
REMOTE_PATH="/load_data/files/test_data"
#shell存放目录
BASE_PATH="/load_shell"
#本地需要上传的文件存放目录
LOCAL_PATH="/home/pbc-file-maxfiles"
#本地文件上传后备份存放目录
LOCAL_ZIP_PATH="/home/pbc-file-maxfiles/data_bak"
#FTPP用户名
USERNAME="db2inst1"
#FTP密码
PASSWORD="db2inst1"

#获取系统时间到天
DATE=$(date +%Y%m%d)

#echo $DATE

echo "`date +%Y-%m-%d %T` : ---------------------------START----------------------------------" >>$BASE_PATH/log/ftp_up_$DATE.log
echo "`date +%Y-%m-%d %T` : 开始上传文件" >>$BASE_PATH/log/ftp_up_$DATE.log

ftp -in <<EOF

open $IP_ADDRESS
user $USERNAME $PASSWORD
binary
cd $REMOTE_PATH

lcd $LOCAL_PATH

espv4 off
passive
mput "*.csv"

bye

EOF
echo "`date +%Y-%m-%d %T` : 上传文件结束" >>$BASE_PATH/log/ftp_up_$DATE.log

#获取系统时间到天
#DATE=$(date +%Y%m)

echo "`date +%Y-%m-%d %T` : 准备移动文件到 ${LOCAL_ZIP_PATH} 目录 " >>$BASE_PATH/log/ftp_up_$DATE.log

for file_all_zip_name in ${LOCAL_PATH}/*;do
        ZIP_FILE_NAME=$(basename "$file_all_zip_name")
        #
        temp_zip_file=$file_all_zip_name
     
    #截取文件名 
        TABLE_NAME_STR=${ZIP_FILE_NAME:0:4}
        ORG=${ZIP_FILE_NAME:4:14}
        DAY=${ZIP_FILE_NAME:18:8}
    MONTH=${ZIP_FILE_NAME:18:6}    
    FILE_NAME=${ZIP_FILE_NAME:0:26}

    if [ ! -d "$LOCAL_ZIP_PATH/$MONTH" ];
       then
            mkdir $LOCAL_ZIP_PATH/$MONTH
    fi
#    echo "`date +%Y-%m-%d %T` : 移动文件 ${ZIP_FILE_NAME}" >>$BASE_PATH/log/ftp_up_$DATE.log

    #将解压完的文件从临时文件夹移到永久保存文件夹
    mv -f $temp_zip_file $LOCAL_ZIP_PATH/$MONTH
done

echo "`date +%Y-%m-%d %T` : 文件移动完毕" >>$BASE_PATH/log/ftp_up_$DATE.log


#cd $LOCAL_ZIP_PATH
#if [ ! -d "$LOCAL_ZIP_PATH/$DATE" ];
#   then 
#    mkdir $LOCAL_ZIP_PATH/$DATE 
#fi
#mkdir $DATE

#将解压完的文件从临时文件夹移到永久保存文件夹
#mv -f $LOCAL_PATH/* $LOCAL_ZIP_PATH/$DATE
echo "`date +%Y-%m-%d %T` : ---------------------------END----------------------------------" >>$BASE_PATH/log/ftp_up_$DATE.log
原文地址:https://www.cnblogs.com/huodaihao/p/8998506.html