在服务器管理中,了解每台服务器的内核版本是基础且重要的工作。手动检查每台服务器的内核版本既耗时又容易出错。本文将介绍如何使用脚本批量查看系统内核版本,从而轻松管理多台服务器。
1. 使用SSH批量连接服务器
首先,确保你的服务器上已安装SSH客户端。在本地机器上,我们可以使用SSH命令来批量连接到多台服务器。
以下是一个简单的SSH批量连接脚本示例:
#!/bin/bash
# 服务器列表文件,每行一个服务器地址
SERVER_LIST="servers.txt"
# 遍历服务器列表文件
while read -r server; do
echo "连接到 $server"
ssh user@$server "uname -r"
done < "$SERVER_LIST"
将上述脚本保存为check_kernel.sh,并赋予执行权限:
chmod +x check_kernel.sh
创建一个名为servers.txt的文件,每行写入一台服务器的地址和用户名,例如:
192.168.1.1 user
192.168.1.2 user
192.168.1.3 user
运行脚本:
./check_kernel.sh
2. 使用Ansible批量连接服务器
Ansible是一个开源的自动化运维工具,可以用来批量管理服务器。首先,确保你的本地机器和目标服务器上已安装Ansible。
以下是一个使用Ansible检查内核版本的示例:
- name: 检查内核版本
hosts: all
become: yes
tasks:
- name: 获取内核版本
shell: uname -r
register: kernel_version
- name: 打印内核版本
debug:
var: kernel_version.stdout
将上述内容保存为check_kernel.yml,并执行以下命令:
ansible-playbook check_kernel.yml
Ansible会自动连接到所有定义在hosts文件中的服务器,并执行指定的任务。
3. 使用Python脚本批量连接服务器
如果你更喜欢使用Python,可以尝试以下脚本:
import paramiko
# 服务器列表文件,每行一个服务器地址
SERVER_LIST="servers.txt"
# 遍历服务器列表文件
with open(SERVER_LIST, 'r') as f:
for server in f:
server = server.strip()
print(f"连接到 {server}")
# 创建SSH客户端实例
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到服务器
client.connect(server, username='user', password='password')
# 执行命令
stdin, stdout, stderr = client.exec_command('uname -r')
# 获取命令输出
kernel_version = stdout.read().decode()
print(kernel_version)
# 关闭连接
client.close()
将上述脚本保存为check_kernel.py,并运行:
python check_kernel.py
总结
使用脚本批量查看系统内核版本可以大大提高服务器管理的效率。以上介绍了三种方法,你可以根据自己的需求选择合适的方法。在实际应用中,可以根据需要扩展脚本功能,例如记录内核版本信息到文件、发送邮件通知等。
