并行和在后台运行多个 shell 脚本



我有一些在后台运行的YCSB数据加载脚本

data_load.sh:

nohup ycsb load couchbase2 -s -P workloada -p couchbase.bucket=poc -threads 30 .. > load1_output.txt &
nohup ycsb load couchbase2 -s -P workloada -p couchbase.bucket=poc -threads 30 .. > load2_output.txt &
nohup ycsb load couchbase2 -s -P workloada -p couchbase.bucket=poc -threads 30 .. > load3_output.txt &

还有一些 YCSB 也运行脚本,如下所示:

Read_test.sh:

nohup ycsb run couchbase2 -s -P workloadc -p couchbase.bucket=poc -threads 30 .. > read1_output.txt &
nohup ycsb run couchbase2 -s -P workloadc -p couchbase.bucket=poc -threads 30 .. > read2_output.txt &
nohup ycsb run couchbase2 -s -P workloadc -p couchbase.bucket=poc -threads 30 .. > read3_output.txt &

如果我单独运行它们,它们将在后台并行运行。

但是如何自动化此操作或编写一个脚本,该脚本将一个接一个地调用这两个脚本,并等待第一个脚本完成,然后再转到下一个脚本?

提前谢谢。

您可以修改第一个脚本以在末尾添加wait也可以source第一个脚本并wait 的父脚本。

source ./data_load.sh
wait
./Read_test.sh

通过source子脚本,它创建的作业实际上将成为主脚本的作业,使您能够为它们wait

没有参数的内置wait将等到所有后台作业完成,之后执行将继续执行下一个命令

您可以在并行模式下使用xargs

$ echo {1..4} | xargs -n1 -P 4 echo "potato"
potato 1
potato 4
potato 3
potato 2

这个管道命令说"获取输入的输入,一次剥下一件事,分成 4 个线程,然后用字符串'potato'回显它。

还有GNU Parallel,有些人发誓 - 尽管学习曲线和它在我的用例中并不比xargs好的事实(以及它没有预装在我的发行版上的事实(使我无法学习太多关于它的知识。

我将详细说明P的答案:

load_and_read.sh:

#!/bin/bash
load_commands='ycsb load couchbase2 -s -P workloada -p couchbase.bucket=poc -threads 30 .. > load1_output.txt
ycsb load couchbase2 -s -P workloada -p couchbase.bucket=poc -threads 30 .. > load2_output.txt
ycsb load couchbase2 -s -P workloada -p couchbase.bucket=poc -threads 30 .. > load3_output.txt'
echo "$load_commands" | xargs -P3
read_commands='ycsb run couchbase2 -s -P workloadc -p couchbase.bucket=poc -threads 30 .. > read1_output.txt
ycsb run couchbase2 -s -P workloadc -p couchbase.bucket=poc -threads 30 .. > read2_output.txt
ycsb run couchbase2 -s -P workloadc -p couchbase.bucket=poc -threads 30 .. > read3_output.txt'
echo "$read_commands" | xargs -P3

使用 nohup ./load_and_read.sh & 在后台运行整个脚本。 第一个echo "$cmds" | xargs -P3并行运行三个加载命令,然后在这三个命令完成后,第二个并行运行三个读取命令。

相关内容

  • 没有找到相关文章

最新更新