如何在Linux cli命令的开头添加真实的主机名

yae*_*ael 4 bash sed awk perl shell-script

我们有红帽服务器 - 7.2

sar 的以下输出将所有相关详细信息打印如下

sar -p -d 1 1


07:16:35 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
07:16:36 PM       sda     13.00      0.00    120.00      9.23      0.04      3.08      1.38      1.80
07:16:36 PM vg_livecd-lv_root     15.00      0.00    120.00      8.00      0.05      3.07      1.27      1.90
07:16:36 PM vg_livecd-lv_swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
07:16:36 PM vg_livecd-lv_home      0.00      0.00      0.00      0.00      0.00      0.00 
Run Code Online (Sandbox Code Playgroud)

我们现在要在每一行的开头添加机器的主机名

首先我们找到了主机名

hostname=` hostname `

echo $hostname

server_mng14
Run Code Online (Sandbox Code Playgroud)

预期成绩

sar -p -d 1 1


server_mng14 07:16:35 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
server_mng14 07:16:36 PM       sda     13.00      0.00    120.00      9.23      0.04      3.08      1.38      1.80
server_mng14 07:16:36 PM vg_livecd-lv_root     15.00      0.00    120.00      8.00      0.05      3.07      1.27      1.90
server_mng14 07:16:36 PM vg_livecd-lv_swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
server_mng14 07:16:36 PM vg_livecd-lv_home      0.00      0.00      0.00      0.00      0.00      0.00 
Run Code Online (Sandbox Code Playgroud)

我们需要在后面管道什么 -sar -p -d 1 1为了获得每行开头的主机名?

rus*_*ord 10

你可以运行:

sar -p -d 1 1 | sed "s/^/$(hostname) /"
Run Code Online (Sandbox Code Playgroud)

  • `ssh user@remote-machine 'sar -p -d 1 1 | sed "s/^/$(hostname) /"'` (3认同)

Ark*_*zyk 7

你可以做:

sar -p -d 1 1 | sed "s,^,$(hostname) ,"
Run Code Online (Sandbox Code Playgroud)

如果您只想将主机名添加到非空行:

sar -p -d 1 1 | sed -E "s,^(.+),$(hostname) \1,"
Run Code Online (Sandbox Code Playgroud)