web-dev-qa-db-ja.com

Linux CLIコマンドの最初に実際のホスト名を追加する方法

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各行の先頭のホスト名を取得するために?

4
yael

あなたは走ることができます:

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

できるよ:

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

空でない行だけにホスト名を付加したい場合:

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

Awkバージョン:

sar -p -d 1 1 | awk -v HOSTNAME=$HOSTNAME '{print HOSTNAME " " $0}'

-vフラグを使用して、bash $ HOSTNAME変数を、awkがそのprintステートメントで参照できる変数に設定します。 $ 0を使用して、行全体を印刷します

またはsshで:

ssh user@remote "sar -p -d 1 1 | awk -v HOSTNAME=$HOSTNAME '{print HOSTNAME \" \" \$0}'"
2
F. Pareto