首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带参数的执行

带参数的执行
EN

Stack Overflow用户
提问于 2019-08-05 03:56:29
回答 1查看 111关注 0票数 2

我使用下面的xargs命令在file.txt包含主机的所有主机(没有参数)上并行执行。

代码语言:javascript
运行
复制
xar-n 1 -P 500 SCRIPT_PATHt

下面是在一个主机上执行脚本(带参数)的方法

代码语言:javascript
运行
复制
SCRIPT_PATH host1 

现在,我的要求是通过xarg命令并行地在多个主机上执行带有参数的脚本。在下面试过,但没起作用。有可能通过xargs来完成吗?

代码语言:javascript
运行
复制
xargs -n 1 -P 500 SCRIPT_PATH "
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-05 05:03:31

xargs解决方案:-I参数

有一个用于xargs的-I选项

xargs命令提供了在命令行末尾以外的某个位置插入列出的参数的选项。xargs的-I选项接受一个字符串,该字符串将在执行命令之前被提供的输入替换。一个常见的选择是%。

就你而言:

代码语言:javascript
运行
复制
xargs -n 1 -P 500 -I % SCRIPT_PATH % "arguments" < file.txt # % as input line
xargs -n 1 -P 500 -I {} SCRIPT_PATH {} "arguments" < file.txt # {} as input line

GNU并行解

GNU并行 --就像xargs一样,但是更强大更方便。

从标准输入并行地构建和执行shell命令行。

管道输入到parallel

您的脚本可以与parallel一起使用,就像用于xargs一样

代码语言:javascript
运行
复制
parallel -n 1 -P 500 -I {} SCRIPT_PATH {} "arguments" < file.txt # just replace xargs with parallel
parallel -P 500 SCRIPT_PATH {} "arguments" < file.txt # you can omit -n 1 -I arg

使用parallel参数的--argfile

您可以将输入文件file.txt设置为参数,而不是将其内容按管道排列。如果您希望将脚本的STDIN用于其他目的,则可能会有所帮助。

代码语言:javascript
运行
复制
parallel -P 500 --arg-file file.txt SCRIPT_PATH {} "arguments"  # --arg-file argument
parallel -P 500 -a file.txt SCRIPT_PATH {} "arguments"  # -a is an --arg-file synonym
parallel -P 500 SCRIPT_PATH {} "arguments" :::: file.txt # '::::' - another way to write -a argfile1

parallel使用--sshloginfile远程执行脚本

您可以使用parallel-slf直接从远程主机管理脚本执行。

代码语言:javascript
运行
复制
parallel -P 500 --slf file.txt --nonall SCRIPT_PATH "arguments"
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57352023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档