美文网首页
shell后台限制多并发控制后台任务强度进行文件拷贝

shell后台限制多并发控制后台任务强度进行文件拷贝

作者: 倪桦 | 来源:发表于2022-05-05 10:40 被阅读0次

    Linux后台限制多并发控制后台任务强度进行文件拷贝

    type=$1 #脚本外部传入内容
    function main() #主要执行任务
    {
        fileName=$1 ; dir=$2 ; type=$3 #接受函数传入
        mkdir -p ./$type/$fileName
        cp -r ${dir}/* ./$type/$fileName >>./$type/log.txt 2>&1 
        if [ $? -eq 0 ]; then
            echo -e "${fileName}\tFinished copy" >>./$type/workSuccess.txt
        else
            echo -e "${fileName}\tFaild copy" >>./$type/workFaild.txt
        fi
    }
    
    while read line 
    do
    {
        joblist=($(jobs -p))             #查询后台当前命令执行的任务数
        while (( ${#joblist[*]} >= 20 )) #后台同时进行任务数限制
        do
        {
            sleep 10
            joblist=($(jobs -p))    
        }
        done
        
        var=(${line//\\t/ })  #字符串按\t拆分
        fileName=${var[0]} ; dir=${var[2]}
        main ${fileName} ${dir} ${type} & #命令提交到后台
    }
    done < ./workList.txt  #行读取任务详细
    

    相关文章

      网友评论

          本文标题:shell后台限制多并发控制后台任务强度进行文件拷贝

          本文链接:https://www.haomeiwen.com/subject/citcyrtx.html