shell 模拟多进程(3)
shell 模拟多进程(2)中原本打算把任务存放在数组中的;由于在a_sub中直接饮用数组变量来执行未成功,换成了17个函数来存放
参照 http://skybug.blog.51cto.com/132577/1337783 如何将shell的变量当命令执行 将脚本修改为
########################以下是脚本##################### #!/bin/bash #filename mwget.sh base=/usr/local/data/ thread=6 task[0]="cd $base && wget -m -np -c -nH http://x.x.x.x/VipProcessData/BasicObject/AreaObject/" task[1]="cd $base && wget -m -np -c -nH http://x.x.x.x/VipProcessData/BasicObject/ClassObject/" task[2]="cd $base && wget -m -np -c -nH http://x.x.x.x/VipProcessData/BasicObject/FullTextObject/" task[3]="cd $base && wget -m -np -c -nH http://x.x.x.x/VipProcessData/BasicObject/FundObject/" task[4]="cd $base && wget -m -np -c -nH http://x.x.x.x/VipProcessData/BasicObject/MediaObject/" task[5]="cd $base && wget -m -np -c -nH http://x.x.x.x/VipProcessData/BasicObject/OrganObject/" task[6]="cd /usr/local/data/VipProcessData/BasicObject/SubjectObject && wget -c -i /usr/local/data/wget/SubjectObject01" task[7]="cd /usr/local/data/VipProcessData/BasicObject/SubjectObject && wget -c -i /usr/local/data/wget/SubjectObject02" task[8]="cd /usr/local/data/VipProcessData/BasicObject/SubjectObject && wget -c -i /usr/local/data/wget/SubjectObject03" task[9]="cd /usr/local/data/VipProcessData/BasicObject/SubjectObject && wget -c -i /usr/local/data/wget/SubjectObject04" task[10]="cd /usr/local/data/VipProcessData/BasicObject/WriterObject && wget -c -i /usr/local/data/wget/WriterObject01" task[11]="cd /usr/local/data/VipProcessData/BasicObject/TitleObject && wget -c -i /usr/local/data/wget/TitleObject01" task[12]="cd /usr/local/data/VipProcessData/BasicObject/TitleObject && wget -c -i /usr/local/data/wget/TitleObject02" task[13]="cd /usr/local/data/VipProcessData/BasicObject/TitleObject && wget -c -i /usr/local/data/wget/TitleObject03" task[14]="cd /usr/local/data/VipProcessData/BasicObject/TitleObject && wget -c -i /usr/local/data/wget/TitleObject04" task[15]="cd /usr/local/data/VipProcessData/BasicObject/TitleObject && wget -c -i /usr/local/data/wget/TitleObject05" task[16]="cd /usr/local/data/VipProcessData/BasicObject/TitleObject && wget -c -i /usr/local/data/wget/TitleObject06" function a_sub() { # 此处定义一个函数,(子进程) echo ${task[i]} | awk '{run=$0;system(run)}' #把task[i]中的命令重定向到awk中用system()函数调用执行 echo "start....... ${task[i]}" } tmp_fifofile="/tmp/$.fifo" mkfifo $tmp_fifofile # 新建一个fifo类型的文件 exec 6<>$tmp_fifofile # 将fd6指向fifo类型 rm $tmp_fifofile for ((i=0;i<$thread;i++));do echo done >&6 # 事实上就是在fd6中放置了$thread个回车符 date_start=$(date +%s) for ((i=0;i<17;i++));do read -u6 #每启动一个子进程就在fifo中删除一个回车 { a_sub && { echo "${task[i]} finshed" } ||{ echo "error" } echo >&6 }& done wait exec 6>&- date_stop=$(date +%s) echo "download finshed ;and all run $((date_stop-date_start)) sec" exit 0
转载于:https://blog.51cto.com/skybug/1337789
shell 模拟多进程(3)相关推荐
- 使用进程池模拟多进程爬取url获取数据,使用进程绑定的回调函数去处理数据...
1 # 使用requests请求网页,爬取网页的内容 2 3 # 模拟使用进程池模拟多进程爬取网页获取数据,使用进程绑定的回调函数去处理数据 4 5 import requests 6 from mu ...
- shell模拟php多进程从redis获取数据(多个redis实例)
背景:现在的数据已经写到了redis队列里面,完成了入栈的操作,后期打算从redis获取数据,完成出栈的操作,出栈后然后做一系列的逻辑处理 环境: VMware虚拟机 内存:1G 硬盘:60G ...
- shell模拟php多进程从redis获取数据(一个库多个key值)
背景:现在的数据已经写到了redis队列里面,完成了入栈的操作,后期打算从redis获取数据,完成出栈的操作,出栈后然后做一系列的逻辑处理 环境: VMware虚拟机 内存:1G 硬盘:60G ...
- shell模拟php多进程从redis获取数据
背景:现在的数据已经写到了redis队列里面,完成了入栈的操作,后期打算从redis获取数据,完成出栈的操作,出栈后然后做一系列的逻辑处理 环境: VMware虚拟机 内存:1G 硬盘:60G ...
- shell模拟php多进程从redis获取数据(多个库)
背景:现在的数据已经写到了redis队列里面,完成了入栈的操作,后期打算从redis获取数据,完成出栈的操作,出栈后然后做一系列的逻辑处理 环境: VMware虚拟机 内存:1G 硬盘:60G ...
- appium+python自动化-adb shell模拟点击事件(input tap)
前言 appium有时候定位一个元素很难定位到,或者说明明定位到这个元素了,却无法点击,这个时候该怎么办呢? 求助大神是没用的,点击不了就是点击不了,appium不是万能的,这个时候应该转换思路,换其 ...
- android 使用shell模拟触屏_android命令行模拟输入事件(文字、按键、触摸等)
前言 通过adb shell input可以模拟android各种输入事件,比如文字.按键.触摸等等. adb shell input Usage: input [] [...] The source ...
- adb shell 模拟鼠标导入通讯录
1.下载adb shell http://adbshell.com/downloads/ 2.配置环境环境变量 3.查找正在打开的引用 单个设备 直接adb shell 多个设备 adb device ...
- shell模拟银行取款功能流程脚本
文章目录 介绍 执行效果 脚本 普通版 优化版 介绍 模拟功能:登录.查询.提现.转账.存款.清屏.退出 登录次数限制:3次错误强制退出程序 登录用户1:zzp/123 登录用户2:cj/456 执行 ...
最新文章
- 使用Markdown写作
- python面试常见问题-Python面试中常见的40个问题
- SSDT表的遍历(源码)
- Java中随机数的原理,以及使用时的注意点
- php毕业设计遇到的问题,常见问题_php毕业设计_php课程设计_php大作业_原创作品下载网...
- 计算机硬盘到内存不足,内存不够硬盘来凑,怪不得电脑卡!
- 周鸿祎:比情怀更重要的硬件创业三定律
- Oracle学习系列1-7
- linux c 多进程,【linux下c语言服务器开发系列1】多进程处理多客户端的连接
- c++实现通讯录制作
- Ubuntu登陆不进去输入密码后黑屏又返回登陆界面
- Qt之Base64编解码
- 免费云服务器获取方法 云服务器购买
- linux 下MySQL本地安装mysql - u root - p 无法登入
- narwal无法连接机器人_ABB机器人驱动通讯连接不上故障维修方法
- Homebrew安装使用卸载
- 孙陶然:当机会降临到你头上时你必须去把握
- 关系型数据库理论基础阐释
- 如何把安卓系统刷成linux,废旧Android手机如何改造成Linux服务器?
- 七年级计算机下册ppt,初中七年级信息技术下册课件:《幸福之家初规划》
热门文章
- YOLO系列专题——YOLOv2理论篇
- 数据结构笔记(十二)-- 定长顺序结构的实现
- angular input_更快的Angular应用程序
- java的robot_Java中的Robot不执行命令
- mos管结电容等效模型_MOS管等效模型
- matlab中input输入多个数_python怎么一次输入两个数
- python从0开始学编程第三天第9讲_【原创笔记1】Python从0学起——Starting from 0 learning Python(The First Day)...
- java对excel加密_Java 加密、解密Excel文档
- c语言里有bool变量,C语言中有没有bool类型
- linux命令mount是什么,Linux命令——mount、umount