centos7下swap (删除、创建、扩容)

centos7下swap (删除、创建、扩容)

查看swap

free -m

查看swap的位置及uuid

blkid

查看swap路径及优先级

swapon -s

启用所有swap

swapon -a

禁用所有swap

swapoff -a

https://qnimg.ffing.cn/wp-content/uploads/2021/07/image-41.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

删除SWAP

1.停止swap分区

swapoff  ”swap分区位置“

2.删除swap分区

rm -rf “swap分区位置“

3.在/etc/fstab中,删除或注释掉swap行

vi /etc/fstab

#/dev/mapper/centos-swap swap swap defaults 0 0
https://qnimg.ffing.cn/wp-content/uploads/2021/07/image-42.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

创建swap

1.使用dd命令创建swap交换文件

下例:创建swap分区/var/swapfile,容量为1M*4096=4096M=4G

#命令格式:dd if=/dev/zero of="swap文件" bs="块大小" count=”块数量“

dd  if=/dev/zero  of=/var/swapfile  bs=1M  count=4096

2.格式化swap分区

mkswap  /var/swapfile

3.激活swap分区

swapon /var/swapfile

4.更改swap权限

chmod -R 0600 /var/swapfile

5.配置/etc/fstab,添加swap分区开机自动挂载

echo  "/var/swapfile   swap  swap  defaults  0  0" >>  /etc/fstab

扩容swap

扩容其实就是创建一个新的swap分区并激活。

脚本实例:

以M为单位!推荐!

#!/bin/bash
#检测并设置swap
#如果swap不存在,则创建,SETSWAP为指定的swap大小值

#read键盘输入固定值
read -p "输入swap固定值(单位G):" GSETSWAP

#swap固定值,单位G
#GSETSWAP=8

################以下无需修改##################
echo "当前设置SWAP固定值为$GSETSWAP G"

#G转换为M
MSETSWAP=`echo "1024*$GSETSWAP"|bc`
#swap文件名
RANDOM=`date +%N`
SWAPFILE="/var/swapfile$RANDOM"
#获取swap
OLDSWAP=`free -m|awk '/Swap/ {print $2}'`
OLDSWAPG=`free -h|awk '/Swap/ {print $2}'`

###判断swap
#判断是否存在swap分区
if [ "$OLDSWAP" = "0B" ] ;then
	#0B表示不存在swap,则创建swap
	echo  "正在创建swap,请等待 ……"
	dd  if=/dev/zero  of=$SWAPFILE  bs=1M  count=$MSETSWAP > /dev/null 2>&1
else

	#否则,扩容
	#判断当前设置swap是否大于原有swap
	if [ "$MSETSWAP" -gt "$OLDSWAP" ] ;then
	ADDSWAP=`echo "$MSETSWAP-$OLDSWAP"|bc`
	echo  "正在创建swap,请等待 ……"
	dd  if=/dev/zero  of=$SWAPFILE  bs=1M  count=$ADDSWAP > /dev/null 2>&1
	else
	echo "已存在SWAP: $OLDSWAPG"
	echo "错误!设置的swap需大于已有swap,请确认!"
	exit
	fi
fi

#格式化swap
mkswap  $SWAPFILE
#启动swap
swapon $SWAPFILE
#swap权限
chmod -R 0600 $SWAPFILE
#开机挂载swap
echo  "$SWAPFILE   swap  swap  defaults  0  0" >>  /etc/fstab
echo
echo "----------------------当前交换分区----------------------"
swapon -s
echo "----------------------当前内存信息----------------------"
free -h

____________________________________________________________

以G为单位,会出现些许偏差,推荐上面的脚本

#!/bin/bash
#检测并设置swap
#如果swap不存在,则创建,SETSWAP为指定的swap大小值
SETSWAP=8

###################################
#swap文件名
RANDOM=`date +%N`
SWAPFILE="/var/swapfile$RANDOM"
#获取swap
OLDSWAP=`free -m|awk '/Swap/ {print $2}'`
#OLDSWAP转换单位为G,并取整数部分
OLDINTSWAP=`echo "$OLDSWAP"|awk  '{printf "%.0f ", $OLDSWAP/1024}'`

###判断swap
#判断是否为空
if [ "$OLDINTSWAP" = "0B" ] ;then
	#空则创建swap
	echo  "正在创建swap,请等待 ……"
	dd  if=/dev/zero  of=$SWAPFILE  bs=1G  count=$SETSWAP
else

	#不为空,则扩容
	#判断当前设置swap是否大于原有swap
	if [ "$SETSWAP" -gt "$OLDINTSWAP" ] ;then
	ADDSWAP=`echo "$SETSWAP-$OLDINTSWAP"|bc`
	echo  "正在创建swap,请等待 ……"
	dd  if=/dev/zero  of=$SWAPFILE  bs=1G  count=$ADDSWAP
	else
	echo "设置的swap比当前swap小,请确认"
	exit
	fi
fi

#格式化swap
mkswap  $SWAPFILE
#启动swap
swapon $SWAPFILE
#swap权限
chmod -R 0600 $SWAPFILE
#开机挂载swap
echo  "$SWAPFILE   swap  swap  defaults  0  0" >>  /etc/fstab
echo
echo "----------------------当前交换分区----------------------"
swapon -s
echo "----------------------当前内存信息----------------------"
free -h
good good study, day day up!

发表评论

textsms
account_circle
email

centos7下swap (删除、创建、扩容)
查看swap free -m 查看swap的位置及uuid blkid 查看swap路径及优先级 swapon -s 启用所有swap swapon -a 禁用所有swap swapoff -a 删除SWAP …
扫描二维码继续阅读
2021-07-08