从事Linux主机建设和运维的同事们在工作中应该经常会遇到批量修改配置信息或部署应用环境的需求,需要根据需求依次登录目标主机执行一些命令或脚本,使用shell脚本的循环语句是实现这一需求最直观方式。但是普通的for或do while循环都是串行执行的,脚本耗时每个循环耗时*循环次数,在较大规模实施或者目标语句耗时较长的情况下,串行方式的循环脚本执行时间也不容忽视。
要减少执行串行循环的耗时,自然要考虑如何用并行方式解决。在shell之外有一些现成的管理部署工具如parallel、ansible、puppet、saltstack都能解决并发执行多任务的问题,但生产系统一般不允许随意安装新软件,因而我们这里只讨论不借助工具,只使用shell脚本如何实现并发执行多任务。
串行执行循环时,脚本中每一次循环对应的子进程都是脚本执行所处shell的前台进程,同一时间一个shell只能有一个前台进程,要做到并行执行多个进程,意味着脚本中的循环要放到执行环境shell的后台,作为后台进程去执行。
根据这个思路来看一下例1:
1例1 直接使用后台执行
先来看下循环串行执行的情况。
脚本的循环内容以sleep为例,下同。
vi para-0.sh
| #!/bin/bash
Njob=15 #任务总数
for ((i=0; i
相关推荐
(图片来源网络,侵删) 前言 统信uos系统是一款基于Linux的操作系统,它具有稳定性、安全性和高效性等特点。由于某些软件或应用程序只能在Windows系统下运行,因此有时候我们需要在uos系统中安装Windows虚拟机来运行这些软件。本文将详细介绍如何在统信uos系统中安装Windows虚拟机。 准备工作 在开始安装Windows虚拟机之前,我们需要准备以下材料: (图片来源网络,侵删) 1.
Google Password Manager是谷歌开发的一款在线密码管理器。它会保护您所有的密码安全。您保存在Google Chrome中的密码会出现在Google Password Manager中。不过,您也可以手动添加不同网站的密码。本文介绍如何在Google Password Manager中编辑或删除所有密码。 如何在Google Password Manager中编辑或删除所有密码
win11任务栏不高亮怎么办?现在很多用户都在使用win11系统,最近有很多用户遇到了win11任务栏不高亮了,不知道有没有新消息了。我们可以通过禁用服务的方法来解决,实在不行就只能重装系统了,下面就一起来看看吧。 win11任务栏不高亮解决方法 方法一: 1、首先右击开始菜单,选择“运行”运行,输入“msconfig”回车确定。 2、接着进入“服务”选项,勾选下面的“隐藏所有
Win10电脑玩红警怎么调整全屏模式?许多老玩家在使用Win10电脑在玩红色警戒游戏的时候,都觉得游戏窗口化太小了,想要将游戏全屏化,要怎么调整呢?下面小编就带着大家一起看一下吧! 操作方法: 路径设置:首先安装 “红色警戒” ,更推荐使用尤里的复仇,免安装版直接解压即可。一定注意:安装路径不要存在中文。否则会提示 “you must run the game from its ins
在本指南中,你将学习如何在 virt-manager 的 KVM、QEMU 和 libvirt 的主机和客户机之间共享文件夹。 virt-manager 应用或软件包使用 libvirt 库来提供虚拟机管理服务。它有一个桌面界面,有助于创建、删除和管理多个虚拟机。 virt-manager 桌面界面及其组件为各种个人和商业场景提供了灵活的虚拟机管理服务。它是一个自由开源的应用,主要用于 KVM 虚
回到顶部
|