最可靠判断Swap是否启用的方式是检查swapon --show输出或/proc/swaps是否非空:[ -s /proc/swaps ]为真即已启用;勿依赖free -h的Swap total字段,因其反映容量而非启用状态。

直接用 swapon --show 或读 /proc/swaps 的输出是否为空,是最可靠、最常用的条件判断方式。
用命令输出是否为空做判断
Shell 脚本中常通过检查 swapon --show 是否有输出来判定 Swap 是否启用:
if swapon --show | grep -q .; then echo "已启用"; else echo "未启用"; fi- 更轻量写法:
if [ -s /proc/swaps ]; then echo "已启用"; else echo "未启用"; fi(/proc/swaps非空即启用) - 注意:不要依赖
free -h中的Swap total做判断——它显示的是容量,不是启用状态;若 Swap 已启用但大小为 0(极罕见),或未启用但残留设备节点,free可能误判
结合 fstab 检查是否配置但未启用
仅确认“是否启用”不够时,可补充检查是否在 /etc/fstab 中声明了 Swap 条目(说明意图启用):
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
grep -E '^[^#].*swap' /etc/fstab > /dev/null && echo "fstab 中已配置" || echo "未配置"- 若 fstab 有配置但
swapon --show无输出,说明需手动运行swapon -a激活
避免常见误判点
以下情况容易导致判断出错,需特别留意:
-
lsblk或fdisk -l显示类型为82 Linux swap≠ 已启用,只是磁盘分区标识 - Swap 文件(如
/swapfile)必须权限为0600才能被swapon成功启用,否则swapon报错且不生效 -
swappiness=0不影响启用状态,只影响使用倾向;即使设为 0,只要启用成功,swapon --show仍会显示










