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

简介: 本分简单分享了一个在 Linux 平台实现并发Shell 任务的方法,以供参考

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  #行读取任务详细
目录
相关文章
|
6月前
|
缓存 网络协议 Linux
Linux C/C++ 开发(学习笔记十三):百万并发的服务器实现
Linux C/C++ 开发(学习笔记十三):百万并发的服务器实现
103 0
|
6月前
|
网络协议 Linux C++
Linux C/C++ 开发(学习笔记十二 ):TCP服务器(并发网络编程io多路复用epoll)
Linux C/C++ 开发(学习笔记十二 ):TCP服务器(并发网络编程io多路复用epoll)
116 0
|
6月前
|
网络协议 Linux C++
Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)
Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)
132 0
|
6天前
|
缓存 Linux 开发者
Linux内核中的并发控制机制:深入理解与应用####
【10月更文挑战第21天】 本文旨在为读者提供一个全面的指南,探讨Linux操作系统中用于实现多线程和进程间同步的关键技术——并发控制机制。通过剖析互斥锁、自旋锁、读写锁等核心概念及其在实际场景中的应用,本文将帮助开发者更好地理解和运用这些工具来构建高效且稳定的应用程序。 ####
23 5
|
9天前
|
Linux 数据库
Linux内核中的锁机制:保障并发操作的数据一致性####
【10月更文挑战第29天】 在多线程编程中,确保数据一致性和防止竞争条件是至关重要的。本文将深入探讨Linux操作系统中实现的几种关键锁机制,包括自旋锁、互斥锁和读写锁等。通过分析这些锁的设计原理和使用场景,帮助读者理解如何在实际应用中选择合适的锁机制以优化系统性能和稳定性。 ####
26 6
|
1月前
|
Linux C++
Linux c/c++之文件拷贝
这篇文章介绍了在Linux环境下使用C/C++进行文件拷贝的两种方法:一种是通过system()函数调用命令行命令cp来拷贝文件,另一种是通过读写文件的方式进行文件拷贝。
30 0
Linux c/c++之文件拷贝
|
3月前
|
移动开发 监控 网络协议
在Linux中,如何查看 http 的并发请求数与其 TCP 连接状态?
在Linux中,如何查看 http 的并发请求数与其 TCP 连接状态?
|
3月前
|
缓存 负载均衡 网络协议
Linux的TCP连接数量与百万千万并发应对策略
【8月更文挑战第15天】在Linux系统中,关于TCP连接数量的一个常见误解是认为其最大不能超过65535个。这一数字实际上是TCP端口号的上限,而非TCP连接数的直接限制。实际上,Linux服务器能够处理的TCP连接数远远超过这一数字,关键在于理解TCP连接的标识方式、系统配置优化以及应用架构设计。
474 2
|
3月前
|
网络协议 Linux
在Linux中,如何查看 http 的并发请求数与其 TCP 连接状态?
在Linux中,如何查看 http 的并发请求数与其 TCP 连接状态?
|
5月前
|
消息中间件 存储 监控
实战Linux I/O多路复用:借助epoll,单线程高效管理10,000+并发连接
本文介绍了如何使用Linux的I/O多路复用技术`epoll`来高效管理超过10,000个并发连接。`epoll`允许单线程监控大量文件描述符,显著提高了资源利用率。文章详细阐述了`epoll`的几个关键接口,包括`epoll_create`、`epoll_ctl`和`epoll_wait`,以及它们在处理并发连接中的作用。此外,还探讨了`epoll`在高并发TCP服务场景的应用,展示了如何通过`epoll`和线程/协程池来构建服务框架。
620 10