`
lfwer
  • 浏览: 84366 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

shell脚本循环遍历目录文件并通过curl进行上传

阅读更多

#!/bin/sh

 

#待上传文件目录

upload_dirName="/home/operationPhone/upload/"

#上传完毕后备份目录

complete_dirName="/home/operationPhone/complete/"

#日志目录

log_dirName=“/var/log/”

#当前日期

currentDate=`date +%Y-%m-%d`

 

function checkDir(){

  if [ ! -d $1 ];then

      mkdir -p $1;

  fi

}

 

function log_info(){

     DATE_N=`date "+%Y-%m-%d %H:%M:%S"`

     USER_N=`whoami`

     #执行成功日志打印路径

     echo "${DATE_N} ${USER_N} execute $0 [INFO] $@" >>$log_dirName/operation-log

}

 

log_info "当前时间点:" $currentDate

 

#上传文件

function PostData(){

  local option=""

  local param=$1

  local arr=(${param//_/ })

  option=${arr[0]}

  groupId=${arr[1]}

  if [ -n "$option" ]; then

     log_info "文件"$1"变更类型:"$option",变更组groupId:"$groupId

     curl -F "groupId=${groupId}" -F "option=${option}"  -F "file=@${upload_dirName}$1" "http://192.168.1.1:8080/Api/upload" >> $log_dirName/operation-log;

     #同步到另一台服务器,注意192.168.1.2做了免密登陆

     rsync  -r ${upload_dirName}$1  192.168.1.2:/home/ftp/;

     #放到本地备份目录去

     mv -f ${upload_dirName}$1 ${complete_dirName};

  fi

}

 

#遍历目录

function loopUploadDir(){

  for element in `ls $1`

    do

        local tmpFile=$1"/"$element

        if [ -f $tmpFile ]

        then

            #getdir $tmpFile

            log_info "开始上传。。。。"$tmpFile

            PostData $element;

        else

            log_info $tmpFile"不是文件"

        fi

   done

}

 

checkDir ${log_dirName}

log_info "开始处理上传任务:[`date "+%Y-%m-%d %H:%M:%S"`]"

checkDir ${upload_dirName}

checkDir ${complete_dirName}

loopUploadDir ${upload_dirName}

log_info "上传任务处理完毕:[`date "+%Y-%m-%d %H:%M:%S"`]"

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics