麒麟KOS脚本通过读取CSV文件中的信息为系统设置计算机名及网络

麒麟KOS脚本通过读取CSV文件中的信息为系统设置计算机名及网络

编码文章call10242025-03-27 9:52:4435A+A-

原文链接:麒麟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系统的初步设置过程,包括配置计算机名和网络信息。这不仅可以为系统管理员节省大量时间,还能提高配置的准确性和效率。希望这篇文章能够帮助到大家,如果你觉得有用,请分享和转发。同时,别忘了点个关注和在看,以便未来获取更多有用的技术信息和解决方案。非常感谢大家的阅读,我们下次再见!

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4