gnu parallel:带主机名的前缀输出

时间:2016-05-17 14:04:01

标签: ubuntu parallel-processing gnu gnu-parallel

当我在多个主机上运行相同的命令时,是否可以为gnu parallel的输出添加前缀?

我在工作池中有10台工作机器,其中任何一台机器都可以完成这项工作,我想找出哪个工作人员通过grep所有日志文件选择了它:

parallel --nonall -S host1,host2,host3 grep job_id_123 /var/log/my_log.log

打印如下内容:

initing job_id_123
doing phase1 job_id_123
doing phase2 job_id_123
wrapping up job_id_123

我想要的是

host2: initing job_id_123
host2: doing phase1 job_id_123
host3: doing phase2 job_id_123
host1: wrapping up job_id_123

我知道我可以这样做:

parallel --nonall -S host1,host2,host3 "hostname && grep job_id_123 /var/log/my_log.log"

但前缀是我所希望的。

我在GNU parallel 20160422

上使用Ubuntu precise (12.04.5 LTS)

1 个答案:

答案 0 :(得分:4)

使用多台计算机运行时,可以使用--tag选项标记每个服务器的输出。因此,在下面的示例中,我要求本地主机(一个iMac)和两个Raspberry Pis打印其操作系统名称:

parallel --nonall --tag -S :,pi1,pi2 uname
:   Darwin
pi1 Linux
pi2 Linux