脚本如下:

  1. #!/bin/bash
  2. PARALLEL=3
  3. TMPFILE=$$.fifo
  4. FAILURE_FLAG=failure.log
  5. function trap_exit
  6. {
  7. kill -9 0
  8. }
  9. trap 'trap_exit; exit 2' 1 2 3 15
  10. rm -f ${FAILURE_FLAG}
  11. mkfifo $TMPFILE
  12. exec 4<>$TMPFILE
  13. rm -f $TMPFILE
  14. {
  15. count=$PARALLEL
  16. while [ $count -gt 0 ]
  17. do
  18. echo
  19. let count=$count-1
  20. done
  21. } >&4
  22. for file in 20120611 20120612 20120613 20120614 20120615 20120616
  23. do
  24. read <&4
  25. ( scp ${file}/${file}_wisp.tar.gz root@192.168.1.100:/tmp || echo ${file}>>${FAILURE_FLAG} ; echo >&4 ) &
  26. done
  27. wait
  28. exec 4>&-
  29. if [ -f ${FAILURE_FLAG} ]
  30. then
  31. exit 1
  32. else
  33. fi

PARALLEL=3        定义并发进程数为3个

TMPFILE=$$.fifo   定义有名管道名称

function trap_exit  捕捉退出信号

mkfifo $TMPFILE   建立有名管道

exec 4<>$TMPFILE   给有名管道绑定标志4

然后就是往 4 里面写 PARALLEL=3 个空格

read <&4 读出一个空行,表示占用了一个进程

echo >&4 执完后命令后补回一个空行,表示释放一个进程

wait 待上面的操作完成后再执行下面的操作

exec 4>&- 关闭有名管道

转载于:https://blog.51cto.com/lihuipeng/902627

shell 并发脚本相关推荐

  1. lnmp shell安装脚本

    LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构.LNMP是现在大多数大型公司在用的web环境,nginx小巧高效的web服务器和反向代理服务器,相对于apach占 ...

  2. Shell 小脚本集合

    平常写的一些shell小脚本,主要是自己练习或者突发奇想写的. 1.显示出每一用户的shell #!/bin/bash File=/etc/passwd UserCount=$(cat ${File} ...

  3. 常见Shell编程脚本

    常见Shell编程脚本 一.Linux运维监控相关 1.创建 Linux 系统账户及密码 #!/bin/bash # 通过位置变量创建 Linux 系统账户及密码 #$1 是执行脚本的第一个参数,$2 ...

  4. 109个shell实用脚本

    109个shell实用脚本 1.Dos 攻击防范(自动屏蔽攻击 IP) #!/bin/bash DATE=$(date +%d/%b/%Y:%H:%M) LOG_FILE=/usr/local/ngi ...

  5. Linux shell 自启动脚本写法

    # ********************************************************************** # Linux shell 自启动脚本写法 # 说明: ...

  6. linux Shell(脚本)编程入门实例讲解详解

    linux Shell(脚本)编程入门实例讲解详解 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集, ...

  7. 一篇关于Maven项目的jar包Shell启动脚本

    使用Maven作为项目jar包依赖的管理,常常会遇到命令行启动,笔者也是哥菜鸟,在做微服务,以及服务器端开发的过程中,常常会遇到项目的启动需要使用main方法,笔者潜心的研究了很多博客,发现大多写的都 ...

  8. shell 获取 mysql 行数_一个Shell小脚本精准统计Mysql每张表的行数实现

    前言 对于开发或者运维人员来说,Mysql数据库每张表的数量肯定是要了解下,有助于我们清理无用数据或者了解哪张表比较占用空间. 另外多次统计表的行数,还能发现Mysql表的增量情况,能够预测表未来会有 ...

  9. linux 运维高级脚本生成器,Linux运维系列,Shell高级脚本自动化编程实战

    课程文件目录: Linux自动化运维系列 Shell高级脚本自动化编程实战 [6.1G] ┣━━01.Shell基础概述 [315.1M] ┃ ┣━━1-1 Shell脚本体系概述.mp4 [154. ...

最新文章

  1. 谈谈Koa 中的next
  2. 简单易懂地讲述网关和DNS的概念
  3. 一个简单的防爬虫脚本(转载欧彬)
  4. IBOOKS导入EPUB出现-23错误时解决方法
  5. python 3.5.2设计页面_怎么解决win10系统搭建Python 3.5.2开发环境的处理方案
  6. Appium环境搭建-完整版
  7. Linux C 算法——排序
  8. AES和RSA前后端加解密
  9. WWDC19 苹果宣布全新 UI 框架 SwiftUI
  10. 懒惰的人有福了——VS代码段编辑器SnippetEditor 可对vs所有代码段进行编辑和创建包括C#\J#\VB.NET等...
  11. 《C++ Primer》读书笔记—第六章 函数
  12. 计算机网络工程安装,一种计算机网络工程用施工平台的制作方法
  13. php_curl-5.4.3-VC9-x64下php_curl.dll加载出错
  14. BaiduPan百度网盘不限速教程
  15. node项目报错had too many unstable restarts (16). Stopped. “errored”
  16. 神经网络架构搜索(Neural Architecture Search)杂谈
  17. 华为机试(扑克牌大小3.3)
  18. SQL语句 -非空约束 - 唯一约束 - 主键约束 - 默认约束 -外键约束
  19. 使用IO流对文件进行编写功能
  20. 默多克:杨致远感情用事 微软太保守

热门文章

  1. Bootstrap3.0学习第十二轮(导航、标签、面包屑导航)
  2. python字符串编码判断
  3. Exchange 2010 Search Problem
  4. RHEL5安装无线网卡驱动
  5. JSTL和EL的使用
  6. oracle 学习日志--ORACLE EXP命令
  7. [译] 在远程工作中领悟到的 10 件事
  8. 配置eclipse编写html/js/css/jsp/java时自动提示
  9. MyEclipse汉化后问题
  10. 2018-02-03-PY3下经典数据集iris的机器学习算法举例-零基础