文档章节

Shell脚本--并发执行

zgw06629
 zgw06629
发布于 2015/07/04 18:06
字数 302
阅读 69
收藏 2

#Shell脚本中并发执行

  1. 顺序执行

#!/bin/bash
echo "Test order execution"
start=$(date +%s)
for ((i=0; i<5; i++))
do
    sleep 2
    echo "Done $i"
done

end=$(date +%s)
take=$((end-start))
echo "Order execution take time(s): $take"

$ bash test_order_exec.sh 
Test order execution
Done 0
Done 1
Done 2
Done 3
Done 4
Order execution take time(s): 10


2. 并发执行

#!/bin/bash

echo "Test concurrent execution"
start=$(date +%s)
for ((i=0; i<5; i++))
do
{
    sleep 2
    echo "Done $i"
} &
done
wait
end=$(date +%s)
take=$((end-start))
echo "Concurrent execution take time(s): $take"

$ bash test_concurrent_exec.sh 
Test concurrent execution
Done 2
Done 0
Done 3
Done 4
Done 1
Concurrent execution take time(s): 2

实际运用:

如果想模拟并发对数据库的更新操作,如更新某一个统计值,如访问次数。可以通过如下的脚本来实现:

#!/bin/bash

for ((i=0; i<100; i++))
do
    mysql -uroot -p123456 -Dtest -e "update count_t set count=count+1;" &
done

补充:

去除恼人的Warning提示

$ mysql -uroot -proot -e "select now()"
Warning: Using a password on the command line interface can be insecure.
+---------------------+
| now()               |
+---------------------+
| 2015-07-05 20:17:05 |
+---------------------+
#清空Warning提示 2代表标准错误输出
$ mysql -uroot -proot -e "select now()" 2>/dev/null
+---------------------+
| now()               |
+---------------------+
| 2015-07-05 20:17:53 |
+---------------------+
#清空所有输出 2等同于1(标准输出)
$ mysql -uroot -proot -e "select now()" >/dev/null 2>&1

参考文档:

http://blog.csdn.net/wangtaoking1/article/details/9838571


© 著作权归作者所有

共有 人打赏支持
zgw06629

zgw06629

粉丝 17
博文 54
码字总数 30471
作品 0
海淀
程序员
私信 提问
(转自张戈博客)Linux系统防CC攻击自动拉黑IP增强版Shell脚本

(转自张戈博客) 前天没事写了一个防CC攻击的Shell脚本,没想到这么快就要用上了,原因是因为360网站卫士的缓存黑名单突然无法过滤后台,导致WordPress无法登录!虽然,可以通过修改本地hos...

独钓渔
2015/07/30
0
2
linux基础-总结题 (每日更新)

1,如何找出/usr/local 下面所有shell脚本文件,并设置执行权限? 解答: chmod + x 2,如何通过端口查找出进程所在目录? 解答: ss -lntup|grep 端口号 3,常用的磁盘raid有哪些?描述下原理...

邱月涛
2017/07/29
0
0
Shell脚本中的并发

主要记录一下Shell脚本中的命令的并发和串行执行。 默认的情况下,Shell脚本中的命令是串行执行的,必须等到前一条命令执行完后才执行接下来的命令,但是如果我有一大批的的命令需要执行,而...

wangergui
2017/05/17
0
0
Tinywan/lua-nginx-redis

在线文档(Online documentation) 目录 Nginx 教程 (Nginx tutorial) Nginx编译安装 Nginx.conf详解和配置 Location 详解和配置 Nginx基础知识 Nginx高性能WEB服务器详解 Nginx高并发系统...

Tinywan
2018/01/07
0
0
shell命名管道FIFO

在shell脚本中,我们想要实现多进程高并发,最简单的方法是把命令丢到后台去,如果量不大的话,没问题。 但是如果有几百个进程同一时间丢到后台去就很恐怖了,对于服务器资源的消耗非常大,甚...

我不是瘦子
2017/11/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java 帝国对 Python 的渗透能成功吗?哈哈

引子 Java 帝国已经成立20多年,经过历代国王的励精图治,可以说是地大物博,码农众多。 可是国王依然不满足,整天想着如何继续开拓疆土, 这一天晚上他又把几个重臣招来商议了。 IO大臣说:...

边鹏_尛爺鑫
50分钟前
5
0
分布式事务解决方案框架(LCN)

什么是XA接口 XA是一个分布式事务协议,由Tuxedo提出。XA中大致分为两部分:事务管理器和本地资源管理器。其中本地资源管理器往往由数据库实现,比如Oracle、DB2这些商业数据库都实现了XA接口...

群星纪元
今天
6
0
linux 操作系统 常用命令和软件安装

1.系统时间更新 ntpdate time.windows.com 2.传送文件 rsync -av /home/data/a.dat -e ssh root@192.168.0.100:/home 3.传送文件夹 scp -r /home/data root@192.168.0.100:/home 4.JDK安装 ......

WJtiny
今天
2
0
pg_lightool基于basebackup的单表恢复和块恢复

开源软件pg_lightool,实现了基于wal日志的块恢复。详情参见博客:https://my.oschina.net/lcc1990/blog/1931485。由于wal日志中FPW的不确定性,它不能作为一个数据库恢复的解决方案。目前对...

movead
今天
2
0
对比剖析Swarm Kubernetes Marathon编排引擎

Docker Native Orchestration 基本结构 Docker Engine 1.12 集成了原生的编排引擎,用以替换了之前独立的Docker Swarm项目。Docker原生集群(Swarm)同时包括了(Docker Engine \/ Daemons)...

Linux就该这么学
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部