创建 / 删除 swap,固化

一键【创建swap】和【删除swap】。


脚本内容:swap_manager.sh

#!/bin/bash

# VPS Swap 管理工具 (适用于 Debian 11)
# 功能:创建 / 删除 swap,固化配置

SWAPFILE="/swapfile"
SWAPSIZE="1G"

create_swap() {
    if swapon --show | grep -q "$SWAPFILE"; then
        echo ">>> Swap 已存在,无需重复创建。"
        return
    fi

    echo "=== 创建 $SWAPSIZE swap 文件 ==="
    sudo fallocate -l $SWAPSIZE $SWAPFILE || sudo dd if=/dev/zero of=$SWAPFILE bs=1M count=1024 status=progress

    echo "=== 设置权限 ==="
    sudo chmod 600 $SWAPFILE

    echo "=== 格式化为 swap 区 ==="
    sudo mkswap $SWAPFILE

    echo "=== 启用 swap ==="
    sudo swapon $SWAPFILE

    echo "=== 添加到 /etc/fstab (固化配置) ==="
    grep -q "$SWAPFILE" /etc/fstab || echo "$SWAPFILE none swap sw 0 0" | sudo tee -a /etc/fstab

    echo "=== 设置 vm.swappiness = 10 ==="
    sudo sysctl vm.swappiness=10
    grep -q "vm.swappiness" /etc/sysctl.conf || echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf

    echo ">>> Swap 创建成功"
}

delete_swap() {
    if ! swapon --show | grep -q "$SWAPFILE"; then
        echo ">>> Swap 未启用或不存在,无需删除。"
    else
        echo "=== 关闭 swap ==="
        sudo swapoff $SWAPFILE
    fi

    if [ -f "$SWAPFILE" ]; then
        echo "=== 删除 swap 文件 ==="
        sudo rm -f $SWAPFILE
    fi

    echo "=== 从 /etc/fstab 移除 swap 条目 ==="
    sudo sed -i "\|$SWAPFILE|d" /etc/fstab

    echo ">>> Swap 删除完成"
}

show_status() {
    echo "=== 当前 swap 状态 ==="
    free -h
    swapon --show
}

menu() {
    clear
    echo "============================"
    echo " VPS Swap 管理工具"
    echo "============================"
    echo " 1. 创建 1GB Swap"
    echo " 2. 删除 Swap"
    echo " 3. 查看 Swap 状态"
    echo " 0. 退出"
    echo "============================"
    read -p "请输入选项 [0-3]: " choice
    case "$choice" in
        1) create_swap ;;
        2) delete_swap ;;
        3) show_status ;;
        0) exit 0 ;;
        *) echo "无效选项,请重新输入。" ;;
    esac
}

# 主循环
while true; do
    menu
    echo
    read -p "按回车键返回菜单..." dummy
done

使用方法

  1. 保存脚本
nano swap_manager.sh
# 粘贴脚本内容
  1. 赋予执行权限
chmod +x swap_manager.sh
  1. 运行脚本
./swap_manager.sh

脚本功能一览

选项说明
1创建 1GB Swap 并固化
2删除 Swap 并清理配置
3查看当前 Swap 状态
0退出工具

稳健性说明

  • 会检查 swap 是否已存在,避免重复创建
  • 删除时自动关闭 swap、清理文件和 fstab
  • 防止重复写入 fstab / sysctl.conf
  • 支持多次反复操作,不会报错

No Comments

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
Previous
Next