Red Hat Server - 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
各行の先頭からホスト名を取得するには、何をパイプで接続する必要がありますか?
答え1
以下を実行できます。
sar -p -d 1 1 | sed "s/^/$(hostname) /"
答え2
あなたはできます:
sar -p -d 1 1 | sed "s,^,$(hostname) ,"
空でない行にのみホスト名を追加したい場合:
sar -p -d 1 1 | sed -E "s,^(.+),$(hostname) \1,"
答え3
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}'"