前言:
在熟悉一个平台时,我们经常要去了解这个平台的一些信息,例如架构、CPU核心情况、线程数、用户、内存、磁盘等信息,所以我将这些命令汇总成脚本~方便查看。后面会持续更新,尽量从兼容以及实用地角度修改脚本......
脚本:
#!/bin/bash
echo "=== 系统信息 ==="
echo "当前日期和时间: $(date)"
echo "Linux 内核版本: $(uname -r)"
echo "发行版信息: $(lsb_release -d | cut -f2-)"
echo "系统架构: $(uname -m)"
echo ""
echo "=== CPU 信息 ==="
cpu_model=$(grep 'model name' /proc/cpuinfo | uniq | cut -f2 -d':')
cpu_cores=$(nproc)
# 获取CPU的线程数
thread_count=$(grep -c ^processor /proc/cpuinfo)
echo "CPU 型号: $cpu_model"
echo "CPU 核心数: $cpu_cores"
echo "CPU 线程数: $thread_count"
echo ""
echo "=== CPU 使用情况 ==="
# 获取 CPU 使用率
mpstat_output=$(mpstat 1 1)
# 提取 CPU 使用率
cpu_usage=$(echo "$mpstat_output" | grep 'all' | awk '{print 100 - $12}')
if [[ -z "$cpu_usage" ]]; then
echo "无法获取 CPU 使用情况,请检查 mpstat 命令是否可用。"
else
echo "CPU 使用情况: ${cpu_usage}%"
fi
echo ""
echo "=== 内存信息 ==="
# 获取内存信息
mem_info=$(free -h)
if [[ -z "$mem_info" ]]; then
echo "无法获取内存信息,请检查 free 命令是否可用。"
else
# 提取并格式化内存信息
total_mem=$(echo "$mem_info" | awk 'NR==2{print $2}')
used_mem=$(echo "$mem_info" | awk 'NR==2{print $3}')
free_mem=$(echo "$mem_info" | awk 'NR==2{print $4}')
echo "总内存: $total_mem"
echo "已用内存: $used_mem"
echo "剩余内存: $free_mem"
fi
echo ""
echo "=== 用户信息 ==="
echo "当前用户: $(whoami)"
echo "当前登录用户数: $(who | wc -l)"
echo "系统总用户数: $(cat /etc/passwd | wc -l)"
echo ""
#echo "=== 文件系统信息 ==="
#df -h
echo "=== 系统信息 ==="
echo "当前日期和时间: $(date)"
echo ""
echo "=== 文件系统使用情况 ==="
# 获取文件系统信息并按容量降序排列
echo -e "文件系统 容量 已用 可用 已用% 挂载点"
df -h --total | awk 'NR>1 {print $1, $2, $3, $4, $5, $6}' | sort -hr -k2 | column -t
echo ""
echo "=== 进程信息 ==="
echo "当前运行的进程数: $(ps aux | wc -l)"