#!/bin/bash
# 文件名: swap_add.sh
# 作者: shuhui
# 版本: 1.3

ROOT_UID=0                             # root uid
E_NOTROOT=67                           # 非 root 角色异常退出代码 
E_RETURN=65                            # 异常返回退出代码 
MIN_SIZE=512                           # 最小空间大小, 512M
SIZE=${1:-$MIN_SIZE}                   # 没有参数传入, 则为 512M
FILE="/swap_${SIZE}"                   # swap 文件路径

if [ `id -u` -ne 0 ]
then
	echo "错误: 请使用 root 角色运行该脚本."
	exit $E_NOTOOR
fi

# 判断数字大于等于 512
if [ ${SIZE} -ge ${MIN_SIZE} ]
then
	fallocate -l ${SIZE}M ${FILE}
	mkswap ${FILE}
	chmod 0600 ${FILE}
	swapon ${FILE} \
	&& echo -n "#swap space by `basename $0`\n${FILE}\t\tswap\t\tswap\tdefaults 0 0" >>/etc/fstab
else
	echo "错误：请输入正确数字[不能低于512]"
	exit $E_RETURN
fi
