我想检查我的bash脚本中的centos框上是否存在Swap空间。因此,现金服务器上没有交换空间,那么我可以创建交换。
我试过这种方法
if [[ -n $(swapon -s) ]]; then
:
else
mkswap /dev/vda2 &> /dev/null
swapon /dev/vda2
fi
显然它不起作用,因为即使没有交换swapon -s
也会返回一个字符串
Filename Type Size Used Priority
答案 0 :(得分:5)
这对我很有用:
if free | awk '/^Swap:/ {exit !$2}'; then
echo "Have swap"
else
echo "No swap"
fi
答案 1 :(得分:0)
我没有看到使用“交换”的方法来做到这一点。既然如此: - 始终至少返回一行 - 始终返回错误代码' 0'
你可以计算行数'如果少于2,那么请选择' else'分支,即。
if [[ $(swapon -s | wc -l) -gt 1 ]] ; then echo "OK" ; else echo "Bad" ; fi
行
if [[ $(swapon -s | wc -l) -gt 2 ]] ; then echo "OK" ; else echo "Bad" ; fi
为
或者只是检查一下“设备”'在swapon输出中,即:
if [[ $(swapon -s | grep -ci "/dev" ) -gt 0 ]] ; then echo "OK" ; else echo "Bad" ; fi