ITPub博客

首页 > Linux操作系统 > Linux操作系统 > imp_all_smslogs

imp_all_smslogs

原创 Linux操作系统 作者:perfychi 时间:2013-02-23 09:17:30 0 删除 编辑
#!/bin/sh
        #********************************************************#
        #          Get Shell Input Argument                      #
                        #
        #          Last Edit Date 2011-08-18                     #
        #    Usage :  ./imp_all_smslogs.sh telcom                #
        #    Exam  : imp_all_smslogs.sh cm                       #
        #    Means : 导入上传成功的移动工作站smsg_logs文件       #
        #            telcom为cm表示移动,为ct表示电信             #
        #                                                        #
        #********************************************************#
. /home/oracle/.bash_profile
L_DIR_NAME=`dirname $0`
cd ${L_DIR_NAME}
cd ..
case "$#" in
         "0")
     export L_TELCOM='cm'
           ;;
         "1" )
     export L_TELCOM=$1
           ;;
esac
export L_WORK_DIR=$PWD
export L_BIN_DIR=${L_WORK_DIR}/bin
export L_LOG_DIR=${L_WORK_DIR}/logs
export L_CTL_DIR=${L_WORK_DIR}/ctl
export L_DATA_BASE=/${L_TELCOM}
export L_STATUS_BASE=/logstate/${L_TELCOM}
export SODU="sudo -u jboss"
#export SODU=""
if [ "${L_TELCOM}" == "pm" ]; then
 export L_SCHEMA=pm_warehouse/pm_warehouse
else
 export L_SCHEMA=warehouse/warehouse
fi;
ISWAITED=0
while [ 1=1 ]; do
 LOGFILE=${L_LOG_DIR}/imp_all_smslogs_${L_TELCOM}_`date "+%Y%m%d"`.log
 echo "****************************************************************">>${LOGFILE}
 cd ${L_DATA_BASE}
 #********************************************************#
 #  循环检查每一个子目录                                  #
 #********************************************************#
 ISWAITED=0
 for STATION in `find ./* -maxdepth 0 -type d |awk -F/ '{print $2}'`; do
  echo `date "+%Y-%m-%d %H:%M:%S"` "${STATION} station data import start">>${LOGFILE}
  #********************************************************#
  #  需要的状态目录是否存在,如不存在,则建目录            #
  #********************************************************# 
  if [ ! -e ${L_STATUS_BASE}/${STATION}/import ]; then
   ${SODU} mkdir -p ${L_STATUS_BASE}/${STATION}/import
  fi;
  cd ${L_DATA_BASE}/${STATION}/upload
  #********************************************************#
  #  循环检查每个子目录下面的每个文件                        #
  #********************************************************#
  for NODEFILE in `find -name "*.log" -type f -mmin +5|awk -F/ '{print $2}'`; do
   if [ ${NODEFILE} == "" ]; then
    continue
   elif [ ! -e /index_data/logstate/ ]; then
    echo "Directory /index_data/logstate/  not exists,illegal exit">>${LOGFILE}
    exit 1;
   elif [ -e ${L_STATUS_BASE}/${STATION}/import/${NODEFILE}.importing ]; then
    echo "${L_DATA_BASE}/${STATION}/upload/${NODEFILE} is importing now">>${LOGFILE}
   elif [ -e ${L_STATUS_BASE}/${STATION}/import/${NODEFILE}.imported ]; then
    echo "${L_DATA_BASE}/${STATION}/upload/${NODEFILE} successed imported already">>${LOGFILE}
   elif [ -e ${L_STATUS_BASE}/${STATION}/import/${NODEFILE}.failed ]; then
    echo "${L_DATA_BASE}/${STATION}/upload/${NODEFILE} failed imported already,please check this manually">>${LOGFILE}
   elif [ ! -e ${L_DATA_BASE}/${STATION}/upload/${NODEFILE}.md5 ]; then
    echo "${L_DATA_BASE}/${STATION}/upload/${NODEFILE}.md5 file not exists">>${LOGFILE}
   else
    #********************************************************#
    #  md5校验完成后,将文件导入数据库                   #
    #********************************************************#
    md5sum -c ${NODEFILE}.md5
          if [ $? -ne 0 ]; then
     echo "${L_DATA_BASE}/${STATION}/upload/${NODEFILE} MD5 check failed">>${LOGFILE}
          else
     echo "${L_DATA_BASE}/${STATION}/upload/${NODEFILE} prepare import">>${LOGFILE}
        ${L_BIN_DIR}/imp_sms_file.sh ${STATION} ${NODEFILE} >${L_LOG_DIR}/trace_${L_TELCOM}_${STATION}_${NODEFILE} 2>&1
     ISWAITED=1
    fi;
   fi;
  done
  echo `date "+%Y-%m-%d %H:%M:%S"` "${STATION} station data import end">>${LOGFILE}
 done
 if [ ${ISWAITED} -eq 0 ]; then
  echo "`date "+%Y-%m-%d %H:%M:%S"` all station,all node check successed">>${LOGFILE}
  echo "`date "+%Y-%m-%d %H:%M:%S"` current unimported file is importing!,waiting 15m">>${LOGFILE}
  sleep 15m
 fi;
done

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27042095/viewspace-754623/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: download_files.sh
请登录后发表评论 登录
全部评论

注册时间:2012-06-06

  • 博文量
    484
  • 访问量
    2975608