Linux cli 명령 시작 부분에 실제 호스트 이름을 추가하는 방법

Linux cli 명령 시작 부분에 실제 호스트 이름을 추가하는 방법

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}'"

관련 정보