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

发布于:2024-04-15 ⋅ 阅读:(180) ⋅ 点赞:(0)

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


网站公告

今日签到

点亮在社区的每一天
去签到