Bash

如何在 Linux cli 命令開頭添加真實主機名

  • September 25, 2019

我們有 redhat 伺服器 - 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 

我們現在想在每一行的開頭添加機器的主機名

首先我們找到了主機名

hostname=` hostname `

echo $hostname

server_mng14

預期成績

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 

我們需要在之後管道什麼 -sar -p -d 1 1為了獲取每行開頭的主機名?

你可以執行:

sar -p -d 1 1 | sed "s/^/$(hostname) /"

你可以做:

sar -p -d 1 1 | sed "s,^,$(hostname) ,"

如果您只想將主機名添加到非空行:

sar -p -d 1 1 | sed -E "s,^(.+),$(hostname) \1,"

引用自:https://unix.stackexchange.com/questions/543462