仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 685|回复: 8
打印 上一主题 下一主题

[shell编程] 来一发Linux下摹拟多线程的并发并发shell剧本

[复制链接]
透明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:22:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!分享一个在Linux下摹拟多线程的并发剧本,利用这个剧本能够同时批量在界说数目的办事器上实行相干下令,比起一般for/while轮回只能按次一条一条实行的效力高十分多,在办理多量办事器时十分的有用。
以下剧本功效是经由过程scp(也可选rsync)向上千台办事器传更新包,剧本运转后同时在背景有50个scp历程向办事器传包。
#!/bin/bash
ip=`catiplist.txt|grep-v"#"|awk{print$1}`#过滤办事器IP
dir=/usr/local/src#方针路径

thead_num=50#自界说并发数,依据本身办事器功能或使用调剂巨细,入手下手万万别界说太年夜,制止办理机宕机
tmp_fifo_file="/tmp/$$.fifo"#以历程ID号定名管道文件
mkfifo$tmp_fifo_file#创立一时管道文件
exec4$tmp_fifo_file#以读写体例翻开tmp_fifo_file管道文件,文件形貌符为4,也能够取3-9恣意形貌符
rm-f$tmp_fifo_file#删除一时管道文件,也可不删除
for((i=0;i<$thead_num;i++))#使用for轮回向管道中输出并发数目的空行
do
echo""#输入空行
done>&4#输入重导向到界说的文件形貌符4上


foriin$ip#轮回一切要实行的办事器
do
read-u4#从管道中读取行,每次一行,一切行读取终了后实行挂起,直到管道有余暇的行
{
scp-P1000$1$i:$dir#一切要批量实行的下令都放在年夜括号内,scp是一个复杂实例,可交换恣意其他下令及下令组,1000为办事器真个端口
sleep3#停息3秒,给体系缓冲工夫,到达限定并发历程数目
echo"">&4#再写进一个空行,使挂起的轮回持续实行
}&#放进背景实行
done
wait#守候一切背景历程实行完成
exec4>&-#删除文件形貌符
exit0

--------------------------------低调的支解线------------------------------------
假如办理机与其他办事器没有创建ssh信托,也可将expect主动应对下令增加到并发剧本的轮回体傍边,修正以下:
#!/bin/bash
ip=`catiplist.txt|grep-v"#"|awk{print$1}`
dir=/usr/local/src
answer="yes"#界说yes/no应对变量
passwd="123456"#办事器暗码
thead_num=50
tmp_fifo_file="/tmp/$$.fifo"
mkfifo$tmp_fifo_file
exec4$tmp_fifo_file
rm-f$tmp_fifo_file
for((i=0;i<$thead_num;i++))
do
echo""
done>&4
foriin$ip
do
read-u4
{
expect<<EOF
settimeout-1
spawnscp-P1000$1$i:$dir
expect"(yes/no)?"{
send"$answer"
expect"Password:"
send"$passwd"
}"Password:"{send"$passwd"}"*host"{exit1}
expecteof
EOF

sleep3
echo"">&4
}&
done
wait
exec4>&-
exit0

欢迎大家来到仓酷云论坛!
爱飞 该用户已被删除
沙发
发表于 2015-1-16 14:56:23 | 只看该作者

来一发Linux下摹拟多线程的并发并发shell剧本

不同于Windows?系统需要花钱购买,因为Linux的核心是免费的,自由使用的,核心源代码是开放的。
小妖女 该用户已被删除
板凳
发表于 2015-1-24 15:19:15 | 只看该作者
学习Linux半年了~个人认为不会的多在网上找资料网上有很多资料可以搜索到,LS那位说放手去搞。
简单生活 该用户已被删除
地板
发表于 2015-2-2 06:20:57 | 只看该作者
任何一个叫做操作系统的东西都是这样子构成的:内核+用户界面+一般应用程序。
变相怪杰 该用户已被删除
5#
发表于 2015-2-7 18:43:13 | 只看该作者
为什么要学Linux呢?每个人都有不同的看法,下面我说说自己的感想吧。?
山那边是海 该用户已被删除
6#
发表于 2015-2-23 09:08:20 | 只看该作者
Windows有MS-DOS?方式,在该方式下通过输入DOS命令来操作电脑;Linux与Windows类似,也有命令方式,Linux?启动后如果不执行?X-WINDOWS,就会处于命令方式下,必须发命令才能操作电脑。?
若相依 该用户已被删除
7#
发表于 2015-3-7 09:30:12 | 只看该作者
生成新的unispimsp.ksc。”另外得到回复后如果问题解决,向帮助过你的人发个说明,让他们知道问题是怎样解决的。
admin 该用户已被删除
8#
发表于 2015-3-15 00:25:14 | 只看该作者
众所周知,目前windows操作系统是主流,在以后相当长的时间内不会有太大的改变,其方便友好的图形界面吸引了众多的用户。
灵魂腐蚀 该用户已被删除
9#
发表于 2015-3-21 18:45:42 | 只看该作者
熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 01:18

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表