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)
你可以做:
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)