用于从多个服务器查找内核版本的Shell脚本

时间:2020-03-05 15:31:45  来源:igfitidea点击:

在本教程中,我们学习编写一个Shell脚本,该脚本将通过ssh登录到多个服务器并获取内核版本。
所有服务器的列表都放置在“ server_list.txt”文件中。

该脚本将登录到列表中的每个服务器并运行uname命令。

输出将被写入变量,然后写入文件。

该脚本可以帮助管理大型Linux服务器的系统管理员获取有关正在运行的Linux版本的报告。
其中我使用了'uname -r',但是我们可以根据需要编辑和使用自己的命令。

获取内核版本的脚本

以下脚本有助于从多个Linux服务器获取内核信息。

#!/bin/bash
#we user variable serverlist to keep there path to file with server names
serverlist='server_list.txt'
#we write in variable all server list
servers=`cat $serverlist`
#we use variable result to keep there path to file with result
result='result.txt'
#this print header to file with resilt using \t\t to add 2 tab symbols
echo -e "Servername \t\t kernel version"> $result
#this get each line of serverlist one by one and write to server variable
for server in $servers
do
#this login to server by ssh and get uname -r
kernel=`ssh root@${server} "uname -r"`
#this write server name and kernel version separated by 2 tab to result file
echo -e "$server \t\t $kernel" >> $result
#end of for loop.
done

Shell脚本输出

./kernel_version.sh
centos_node1@bobbin:~/Documents/Work/Bobbin$cat result.txt
Servername kernel version
dev 3.3.8-gentoo
web1 3.2.12-gentoo
svn 3.2.12-gentoo