簡體   English   中英

如何將 linux bash 腳本 output 定向到每台主機一行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM