#!/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/
,如需转载,请注明出处,否则将追究法律责任。