当我在多个主机上运行相同的命令时,是否可以为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)
答案 0 :(得分:4)
使用多台计算机运行时,可以使用--tag
选项标记每个服务器的输出。因此,在下面的示例中,我要求本地主机(一个iMac)和两个Raspberry Pis打印其操作系统名称:
parallel --nonall --tag -S :,pi1,pi2 uname
: Darwin
pi1 Linux
pi2 Linux