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