download_files.sh

#!/bin/bash
        #********************************************************#
        #          Get Shell Input Argument                      #

        #               2011-08-03                               #
        #    Usage :  ./download_files.sh sequence control_file  #
        #    Exam  : download_files.sh 1 ./servers1.conf         #
        #    Means : 从./servers1.conf中定义的工作站获取数据     #
        #    第一个参数用于识别进程,如果已经有进程运行则退出    #
        #    第二个参数定义了所有的工作站信息,见举例             #
        #                                                        #
        #********************************************************#
export BASE_HOME=/home/oracle/admin/getfile
export BIN_HOME=$BASE_HOME/bin
PID_FILE=/var/run/${0##*/}$1.pid
E_RETURN=65
        #********************************************************#
        #                                                        #
        #  检查进程是否存在,不允许重复执行,用第一个参数识别    #
        #                                                        #
        #********************************************************#
check_pid () {
    if [ -s "$PID_FILE" ]; then
        echo "PID file exists. Checking ..."
        PID=$(/bin/egrep -o "^[[:digit:]]+" $PID_FILE)
        echo $PID
        if /bin/ps --pid $PID &>/dev/null; then
            echo "Process $PID found. ${0##*/} seems to be running!($PID_FILE)"
          /usr/bin/logger -t ${0##*/} \
                 "Process $PID found. ${0##*/} seems to be running!($PID_FILE)"
            exit $E_RETURN
        fi
        echo "Process $PID not found. Start new process  $$. . ."
    fi
}
        #********************************************************#
        #                                                        #
        #  将当前进程PID记录到临时文件                           #
        #                                                        #
        #********************************************************#
write_lock () {
    echo $$ > $PID_FILE || {
        echo "Can't write to pid file $PID_FILE"
        exit $E_RETURN
    }
}
        #********************************************************#
        #    功能 : 第二个参数文件中定义的工作站获取数据         #
        #    第一个参数用于识别进程,如果已经有进程运行则退出    #
        #    第二个参数定义了所有的工作站信息,见举例             #
        #                                                        #
        #********************************************************#
getfile ()  
{
JOB_ID=$1
for servers in `cat $2`
do
L_TELCOM=`echo $servers |cut -f 1 -d:`
L_STATION_NAME=`echo $servers |cut -f 2 -d:`
L_STATION_IP=`echo $servers |cut -f 3 -d:`
L_FILE_PATH=`echo $servers |cut -f 4 -d:`
echo   "${JOB_ID}:starting copy from ${L_TELCOM} ${L_STATION_NAME} $L_STATION_IP  ${L_FILE_PATH}/"
#for file_name in `ssh jbosslog@$L_STATION_IP  "cd ${L_FILE_PATH};ls *log"`
for file_name in `ssh jbosslog@$L_STATION_IP  "ls  ${L_FILE_PATH}"`
do
  export L_START_DATE=`date  "+%Y-%m-%d %H:%M:%S"`
     ssh  jbosslog@${L_STATION_IP} "cd ${L_FILE_PATH} ; md5sum  ${file_name} > ${file_name}.md5"
    sudo -u jboss   touch   /logstate/$L_TELCOM/$L_STATION_NAME/upload/${file_name}.up
#sudo -u jboss touch   /logstate/$L_TELCOM/$L_STATION_NAME/upload/${file_name}.up
     scp -q -C jbosslog@${L_STATION_IP}:${L_FILE_PATH}/$file_name  /$L_TELCOM/$L_STATION_NAME/upload/${file_name}.up
     scp -q -C jbosslog@${L_STATION_IP}:${L_FILE_PATH}/$file_name.md5  /$L_TELCOM/$L_STATION_NAME/upload/
  export L_END_DATE=`date  "+%Y-%m-%d %H:%M:%S"`
    cd  /$L_TELCOM/$L_STATION_NAME/upload/
    mv ${file_name}.up ${file_name}
    md5sum --status -c ${file_name}.md5
 
  if [ $? -eq 0 ]; then
   echo "${JOB_ID}:${L_START_DATE}-${L_END_DATE}:${L_STATION_IP}:${L_FILE_PATH}/$file_name SUCCESS;"
        ssh  jbosslog@${L_STATION_IP} "cd ${L_FILE_PATH} ;rm ${file_name}.md5 ;rm -f ${file_name}"
        sudo -u jboss mv  /logstate/$L_TELCOM/$L_STATION_NAME/upload/${file_name}.up  /logstate/$L_TELCOM/$L_STATION_NAME/upload/${file_name}
  else
        echo "${JOB_ID}:${L_START_DATE}-${L_END_DATE}:${L_STATION_IP}:${L_FILE_PATH}/$file_name FAILED;"
        ssh  jbosslog@${L_STATION_IP} "cd ${L_FILE_PATH} ;rm ${file_name}.md5"
            cd  /$L_TELCOM/$L_STATION_NAME/upload/
            rm ${file_name}.md5
            rm ${file_name}
        sudo -u jboss  rm /logstate/$L_TELCOM/$L_STATION_NAME/upload/${file_name}.up
  fi
#####联调使用,将该省份的数据更改成海南的数据##############上线后请删除WARN WARN WARN WARN   WARN  WARN  WARN  WARN  WA
##########################end
done
done
   }
########################正文###############################
check_pid
write_lock
while true
do
 echo `date +%Y%m%d%H`
        getfile $1 $2
 echo "sleep 900"
        sleep 900
done

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

转载于:http://blog.itpub.net/27042095/viewspace-754624/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值