编写一个 shell 脚本,可以打印出服务器 cpu 、内存、网卡等相关信息, CPU 信息包括物理核数、 CPU 个数、逻辑核数,内存包括内存大小;网卡包括网卡个数、类型、每个网卡地址等。
请问这个题目中怎么做,请截屏一下结果
#!/bin/bash
# 获取 CPU 信息
# 物理核数
num_cores=$(grep -c ^processor /proc/cpuinfo)
echo "Number of physical cores: $num_cores"
# CPU 个数
num_cpus=$(grep -c ^physical\ id /proc/cpuinfo)
echo "Number of CPUs: $num_cpus"
# 逻辑核数
num_logical_cores=$(grep -c ^cpu\ cores /proc/cpuinfo)
echo "Number of logical cores: $num_logical_cores"
# 获取内存信息
memory_size=$(grep MemTotal /proc/meminfo | awk '{print $2}')
echo "Total memory size: $memory_size kB"
# 获取网卡信息
# 网卡个数
num_interfaces=$(ip -o -4 addr show | wc -l)
echo "Number of interfaces: $num_interfaces"
# 网卡类型
interface_types=$(ip -o -4 addr show | awk '{print $2}' | sort | uniq)
echo "Interface types: $interface_types"
# 每个网卡地址
ip_addresses=$(ip -o -4 addr show | awk '{print $4}')
echo "IP addresses: $ip_addresses"
#!/bin/bash
# 打印 CPU 信息
echo "CPU信息:"
# 查看 CPU 物理核数
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
# 查看 CPU 个数
cat /proc/cpuinfo | grep "processor" | wc -l
# 查看 CPU 逻辑核数
cat /proc/cpuinfo | grep "processor" | wc -l
# 打印内存信息
echo "内存信息:"
# 查看内存大小
cat /proc/meminfo | grep MemTotal | awk '{print $2/1024/1024 " GB"}'
# 打印网卡信息
echo "网卡信息:"
# 查看网卡个数
ifconfig -a | grep -E "^e|^w" | wc -l
# 查看每个网卡的类型和地址
ifconfig -a | grep -E "^e|^w" | awk '{print $1 ": " $5}'
下面是一个可以打印出服务器 CPU 、内存、网卡等相关信息的 shell 脚本的示例:
#!/bin/bash
# 打印 CPU 信息
echo "物理核数:" `cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l`
echo "CPU 个数:" `cat /proc/cpuinfo | grep "model name" | wc -l`
echo "逻辑核数:" `cat /proc/cpuinfo | grep "processor" | wc -l`
# 打印内存信息
echo "内存大小:" `cat /proc/meminfo | grep MemTotal | awk '{print $2/1024/1024 " GB"}'`
# 打印网卡信息
echo "网卡个数:" `ifconfig -a | grep -c "eth"`
echo "网卡类型:" `lspci | grep Ethernet`
echo "网卡地址:"
ifconfig -a | grep "eth" | awk '{print $1 ": " $5}'
执行这个脚本,可以得到类似于下面的输出(具体输出内容可能会有所不同,因为每个服务器的配置是不同的):
希望这个示例对你有帮助!
可以参考如下命令
#!/bin/bash
# 打印 CPU 信息
echo "CPU 信息:"
cat /proc/cpuinfo | grep "model name" | uniq
# 打印内存信息
echo "内存信息:"
cat /proc/meminfo | grep "MemTotal"
# 打印网卡信息
echo "网卡信息:"
ifconfig -a
这个脚本使用了一些 Linux 系统内置的命令来获取信息,例如 cat、grep 和 uniq 等。
cat /proc/cpuinfo 命令可以用来获取 CPU 的相关信息,其中包括 CPU 型号。
cat /proc/meminfo 命令可以用来获取内存的相关信息,其中包括总内存大小。
ifconfig -a 命令可以用来获取网卡的相关信息,其中包括网卡名称和 IP 地址。
如图:
#!/bin/bash
# Print CPU information
echo "CPU Information:"
echo " Physical cores: $(grep -c ^processor /proc/cpuinfo)"
echo " CPU count: $(grep -c ^cpu /sys/devices/system/cpu)"
echo " Logical cores: $(grep -c ^core /sys/devices/system/cpu)"
# Print memory information
echo "Memory Information:"
echo " Total memory: $(grep ^MemTotal /proc/meminfo | awk '{print $2 " kB"}')"
# Print network interface information
echo "Network Interface Information:"
echo " Interface count: $(ls -l /sys/class/net | grep -c ^l)"
echo " Interfaces: $(ls /sys/class/net)"
for interface in $(ls /sys/class/net); do
echo " Type: $(cat /sys/class/net/$interface/type)"
echo " MAC address: $(cat /sys/class/net/$interface/address)"
done
此脚本首先使用 grep 和 awk 命令打印出有关 CPU 的信息,以解析 /proc/cpuinfo 和 /sys/devices/system/cpu 文件。然后,它使用 grep 和 awk 打印出有关总内存的信息,以解析 /proc/meminfo 文件。
最后,脚本使用 ls 和 cat 命令打印出有关网络接口的信息,以列出和读取 /sys/class/net 目录中的文件。该脚本循环遍历每个接口并打印出其类型和 MAC 地址。
要运行此脚本,请将其保存到扩展名为.sh(例如 server_info.sh)的文件中,并使用 chmod 命令使其可执行:
chmod +x server_info.sh
然后,可以通过在命令提示符下键入 ./server_info.sh 来运行脚本。