目录

脚本Linux一键扩大虚拟内存的大小

【脚本】Linux一键扩大虚拟内存的大小

Linux增加虚拟内存其实很简单

就那几个命令, freemkswapswapon

但是方便起见我写成了脚本

使用方法

进入你的目录,

nano ./install_swap.sh

下面的脚本全文复制,粘贴进去之后,按 ctrl+x 后按 y 保存

然后运行以下命令

sudo bash ./install_swap.sh [虚拟内存大小(MB)]

比如扩大2000M,就输入 sudo bash ./install_swap.sh 2000

脚本:

#!/bin/bash

# 检查是否提供了参数
if [ $# -ne 1 ]; then
    echo "用法: $0 <虚拟内存大小(MB)>"
    exit 1
fi

# 获取用户输入的虚拟内存大小
swap_size_mb=$1

# 检查输入是否为有效的正整数
if ! [[ $swap_size_mb =~ ^[0-9]+$ ]]; then
    echo "错误: 输入的虚拟内存大小必须是正整数。"
    exit 1
fi

# 定义 swap 文件路径
base_swap_file="/swapfile"
swap_file="$base_swap_file"
file_number=1

# 检查文件是否存在,如存在,生成新的文件名
while [ -f "$swap_file" ]; do
    swap_file="${base_swap_file}${file_number}"
    ((file_number++))
done

# 创建指定大小的 swap 文件
echo "正在创建 $swap_size_mb MB 的 swap 文件..."
sudo fallocate -l "${swap_size_mb}M" "$swap_file"

# 设置文件权限
sudo chmod 600 "$swap_file"

# 格式化文件为 swap 格式
echo "正在格式化 swap 文件..."
sudo mkswap "$swap_file"

# 启用 swap 文件
echo "正在启用 swap 文件..."
sudo swapon "$swap_file"

# 备份 fstab 文件
sudo cp /etc/fstab /etc/fstab.bak

# 将 swap 文件信息添加到 fstab 以实现开机自动挂载
echo "$swap_file none swap defaults 0 0" | sudo tee -a /etc/fstab

# 验证 swap 是否启用
echo "验证 swap 是否成功启用..."
swapon --show

echo "虚拟内存创建并启用成功!以下命令可以查看当前信息"
echo "swapon --show"

效果:

https://i-blog.csdnimg.cn/direct/01ab0cf3f9694147aaff7ad2170e3c69.png