从事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
相关推荐
LINUX是一个强大的操作系统,它提供了各种不同的发行版,如CentOS、Ubuntu等。在安装LINUX时,很多人选择使用U盘来进行安装,因为这样更方便和快捷。有时候在使用U盘安装CentOS时,可能会遇到无法启动的问题。本文将介绍一些解决这个问题的方法。 您需要确保使用的U盘没有损坏或者存在问题。您可以尝试将U盘连接到其他计算机上,看看是否可以正常启动。如果其他计算机上也无法启动,那么很可能是
win10远程连接桌面是可以用命令来实现的,很多人以为用命令很难,其实命令更快捷更快。但是很多人感觉命令太专业高端的样子,不愿意去了解学习。那今天就教大家怎么用命令去进行win10的远程连接。 win10远程桌面连接命令怎么用详细教程: 1、在打开远程桌面后,我们选择下面的【显示选项】。 2、上面输入需要连接的那个计算机的IP地址,下面输入计算机的名称。 3、然后点击下面的【连
前言 作为一名Linux运维人员,我们时常需要在服务器上安装Java环境。而在CentOS系统中,使用yum命令安装Java是一种简单且方便的方法。本文将为大家详细介绍使用yum命令在CentOS中安装Java的步骤。 步骤一:更新yum源 在执行安装Java命令之前,我们需要先更新yum源。在终端输入以下命令: ``` sudo yum update 等待更新完成后,我们就可以开始安装Java了
在应用win10电脑的时分,由于偶然候会举行一些xitong上配置和电脑的经管,需要应用电脑设备经管器举行配置,不过很多的用户们不晓得设备经管器在甚么地位,那就迅速来看看详细的xitonganzhuang教程吧。 1、最简单最快的方法。首先在桌面上找到【此电脑】,然后鼠标右键【此电脑】,选择【管理】。 2、进入计算机管理界面,在下方能够找到【设备管理器】。 以上就是本站为广大用户们
本文目录导读: 1、前言 2、CentOS安装MySQL RPM包步骤 3、为您分享 前言 LINUX是一款非常流行的开源操作系统,其中CentOS是最受欢迎的版本之一。MySQL是一个强大的关系型数据库管理系统,被广泛应用于各种企业级项目中。本文将介绍如何在CentOS中安装MySQL RPM包。 CentOS安装MySQL RPM包步骤 1. 下载MySQL RPM包 首先,我们需要从MySQ
回到顶部
|