【发布时间】:2019-01-08 10:48:53
【问题描述】:
我有两台机器,我想使用 GNU Parallel 让多个进程“捕获”两台机器上某些文本文件的内容。
我有以下设置。
在本地机器上,在同一目录中,我有以下文件:
- cmd.sh - 包含以下内容的 bash 文件:'cat "$@"'
- test1.txt - 一个文本文件,内容为:'Test 1'
- test2.txt - 一个文本文件,内容为:'Test 2'
- test3.txt - 一个文本文件,内容为:'Test 3'
-
nodefile - 包含以下内容的文本文件:
2/:
4/dan@192.168.0.3
如果我使用 wordpress 链接(如下)中的节点文件示例,并且我的 IP 是 192.168.0.2。
这些文件都不会在远程计算机上复制。我想让多个进程从两台机器上“捕获”每个 test?.txt 文件的内容。
最好是这样:
- 不会在远程计算机上留下任何工件
- 将保持本地目录的内容不变。
我已经能够按照this wordpress example 使用节点文件远程执行多处理命令,但没有涉及远程回显文件。
到目前为止,我有以下内容:
parallel --sshloginfile nodefile --workdir . --basefile cmd.sh -a cmd.sh --trc ::: test1.txt test2.txt test3.txt
但这不起作用,正在从我的目录中删除文件而不是替换它们,并给出 rsync 错误。我(很遗憾)目前无法提供错误或复制设置。
我对并行非常缺乏经验,谁能指导我完成这项任务的语法? (到目前为止)我无法在手册页或网络上找到答案。
运行 Ubuntu 16.04 LTS 并使用最新版本的 GNU Parallel。
【问题讨论】:
-
目前还不清楚您是想“捕捉”内容还是“回显”文件名。
-
你说得对,我把它改成了猫。正在从记忆中消失......
标签: bash multiprocessing gnu-parallel