当前位置:   article > 正文

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

kos脚本是什么

原文链接:麒麟KOS编写脚本通过读取CSV文件中的信息为系统设置计算机名及网络
Hello,大家好啊!在许多情况下,系统管理员需要在多台计算机上进行批量设置,如配置计算机名和网络信息。手动完成这些任务不仅耗时而且容易出错。因此,今天我将为大家介绍如何在麒麟KOS操作系统上编写一个脚本,这个脚本可以自动从CSV文件中读取数据,并据此为终端设置计算机名和网络配置。这种方法可以大大提高配置的效率和准确性。

注意事项
请根据实际使用的网络管理工具(如Netplan、NetworkManager等)修改脚本中的网络配置部分。
在执行脚本之前,请确保具备相应的系统权限(可能需要sudo)。
在应用任何网络配置之前,建议先进行测试以确保配置的正确性。

1.查看系统信息

pdsyw@pdsyw-pc:~/Desktop$ cat /etc/os-release 
pdsyw@pdsyw-pc:~/Desktop$ uname -a
  • 1
  • 2

2.编辑Excel文件

3.另存为其他格式

4.选择CSV文件格式

5.查看网络设置状态

pdsyw@test1:~/Desktop$ nmcli device status
  • 1

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$ 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

7.将脚本与CSV文件放在同一路径

pdsyw@test1:~/Desktop$ ls network.csv 
network.csv
pdsyw@test1:~/Desktop$ 
pdsyw@test1:~/Desktop$ ls test.sh 
test.sh
pdsyw@test1:~/Desktop$ 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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$
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

9.查看执行结果是否正确

root@pdsyw1024:~# hostname
root@pdsyw1024:~# cat /etc/NetworkManager/system-connections/有线连接\ 1.nmconnection 
  • 1
  • 2

10.图形化查看计算机名信息

11.图形化查看网络信息

12扩展内容
12.1.下载安装libreoffice-calc

root@pdsyw1024:~# apt install libreoffice-calc -y
  • 1

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 
  • 1
  • 2


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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/957476
推荐阅读
相关标签
  

闽ICP备14008679号