[英]How to direct linux bash script output to one line per host
我想更改我的腳本,以便命令 output 用逗號分隔,並且每個主機都在一行上。 關於如何實現這一目標的任何想法:
第一個腳本:
#!/bin/bash
for i in `cat ~/hostnames.txt`
do
ssh -q $i 'bash -s' < server_info.sh
done
第二個腳本(server_info.sh):
#!/bin/bash
echo -n "Name: "
uname -n
echo -n "CPUs: "
cat /proc/cpuinfo* | grep processor | wc -l
echo -n "Memory (kb): "
cat /proc/meminfo | grep MemTotal: | awk '{print $2}'
echo -n "Current Kernel: "
uname -a | awk '{print $3}'
echo -n "IP: "
hostname -i
echo -e
更改您的1st script
:
#!/bin/bash
for i in cat ~/hostnames.txt
do
ssh -q $i 'bash -s' < server_info.sh
done | awk -v RS= '{$1=$1}1'
注意:您的server_info.sh
可以更加優化。例如:
cat /proc/meminfo | grep MemTotal: | awk '{print $2}'
可以改為:
awk '/MemTotal:/{print $2}' /proc/meminfo
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.