当前位置: 首页 > news >正文

【脚本】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"

效果:
在这里插入图片描述

http://www.dtcms.com/a/62702.html

相关文章:

  • 多光谱相机数据采集过程中常见仪器
  • 基于FPGA的图像退化算法verilog实现,分别实现横向和纵向运动模糊,包括tb和MATLAB辅助验证
  • ARM SVC指令
  • FX-友元函数和友元类
  • C++学习——顺序表(二)
  • CSS-三大特性,盒子模型,圆角边框,盒子阴影,文字阴影
  • nslookup的使用
  • 通俗解读:Occupancy Network与端到端架构
  • C盘清理技巧分享:释放空间,提升电脑性能
  • 临界比例法PID调整-附带pidtune工具和GA算法
  • python编写WEB服务器
  • 多维数据聚合方案:SQL GROUPING SETS深度解析
  • idea 生成jpa的mvc三层
  • Spring 面向切面编程 XML 配置实现
  • LabVIEW变频器谐波分析系统
  • 【leetcode hot 100 25】K个一组翻转链表
  • 使用SDKMAN!安装springboot
  • kettle-打不开提示Could not find the main class
  • nextjs15简要介绍以及配置eslint和prettier
  • halcon deeplearn 语义分割经验分享 1
  • Gazebo直接构建仿真世界
  • VSCode-Server 在 Linux 容器中的手动安装指南
  • 【技海登峰】Kafka漫谈系列(八)Controller:Zookeeper模式与KRaft模式
  • 山东2025年网络管理员报名工作经验要求与所需材料
  • 无标签数据增强+高效注意力GAN:基于CARLA的夜间车辆检测精度跃升
  • 责任链模式的C++实现示例
  • 项目中async和await的应用场景
  • PHPCMS V9 登录加密改造
  • 【redis】应用场景:共享会话和手机验证码
  • Quickwit+Jaeger+Prometheus+Grafana搭建Java日志管理平台