原文链接:麒麟KOS编写脚本通过读取CSV文件中的信息为系统设置计算机名及网络
Hello,大家好啊!在许多情况下,系统管理员需要在多台计算机上进行批量设置,如配置计算机名和网络信息。手动完成这些任务不仅耗时而且容易出错。因此,今天我将为大家介绍如何在麒麟KOS操作系统上编写一个脚本,这个脚本可以自动从CSV文件中读取数据,并据此为终端设置计算机名和网络配置。这种方法可以大大提高配置的效率和准确性。
注意事项
请根据实际使用的网络管理工具(如Netplan、NetworkManager等)修改脚本中的网络配置部分。
在执行脚本之前,请确保具备相应的系统权限(可能需要sudo)。
在应用任何网络配置之前,建议先进行测试以确保配置的正确性。
1.查看系统信息
pdsyw@pdsyw-pc:~/Desktop$ cat /etc/os-release
pdsyw@pdsyw-pc:~/Desktop$ uname -a
2.编辑Excel文件
3.另存为其他格式
4.选择CSV文件格式
5.查看网络设置状态
pdsyw@test1:~/Desktop$ nmcli device status
6.编写脚本
pdsyw@test1:~/Desktop$ vim test.sh
pdsyw@test1:~/Desktop$
pdsyw@test1:~/Desktop$ cat test.sh
#!/bin/bash
# 获取当前机器的SN号
NOW_SN=$(dmidecode -t system | grep 'Serial Number' | awk -F': ' '{print $2}')
# 获取当前机器的网卡
NOW_NETCARD="有线连接 1"
# CSV文件路径
CSV_FILE="network.csv"
# 读取CSV并更新网络配置
while IFS=, read -r sn hostname ip netmask gateway dns1 dns2; do
if [ "$sn" == "$NOW_SN" ]; then
echo "Matching SN found. Updating network configuration..."
# 设置主机名
hostnamectl set-hostname "$hostname"
sed -i "1i127.0.1.1 $hostname" /etc/hosts
#禁用自动获取 IP
nmcli con mod "$NOW_NETCARD" ipv4.method manual
# 设置ip地址及netmask
nmcli con mod "$NOW_NETCARD" ipv4.addresses $ip/$netmask
#设置gateway
nmcli con mod "$NOW_NETCARD" ipv4.gateway $gateway
#设置dns
nmcli con mod "$NOW_NETCARD" ipv4.dns "$dns1 $dns2"
#启用并应用配置
nmcli con up "$NOW_NETCARD"
echo "Network configuration updated successfully."
exit 0
fi
done < <(tail -n +2 "$CSV_FILE") # 跳过CSV文件的标题行
pdsyw@test1:~/Desktop$
7.将脚本与CSV文件放在同一路径
pdsyw@test1:~/Desktop$ ls network.csv
network.csv
pdsyw@test1:~/Desktop$
pdsyw@test1:~/Desktop$ ls test.sh
test.sh
pdsyw@test1:~/Desktop$
8.执行脚本
pdsyw@test1:~/Desktop$ sudo bash test.sh
输入密码
Matching SN found. Updating network configuration...
连接已成功激活(D-Bus 活动路径:
/org/freedesktop/NetworkManager/ActiveConnection/11)
Network configuration updated successfully.
pdsyw@test1:~/Desktop$
9.查看执行结果是否正确
root@pdsyw1024:~# hostname
root@pdsyw1024:~# cat
/etc/NetworkManager/system-connections/有线连接\ 1.nmconnection
10.图形化查看计算机名信息
11.图形化查看网络信息
12扩展内容
12.1.下载安装libreoffice-calc
root@pdsyw1024:~# apt install libreoffice-calc -y
12.2.命令行将xlsl文件转换为CSV文件
root@pdsyw1024:~# libreoffice --headless --convert-to csv network.csv --outdir /home/pdsyw/Desktop/ /home/pdsyw/Desktop/network.xlsx
root@pdsyw1024:~# ll /home/pdsyw/Desktop/network.csv
通过使用简单的bash脚本和CSV文件,我们可以自动化麒麟KOS系统的初步设置过程,包括配置计算机名和网络信息。这不仅可以为系统管理员节省大量时间,还能提高配置的准确性和效率。希望这篇文章能够帮助到大家,如果你觉得有用,请分享和转发。同时,别忘了点个关注和在看,以便未来获取更多有用的技术信息和解决方案。非常感谢大家的阅读,我们下次再见!