Puo's 菜园子 学习园地 http://puo.cn
易记网址: http://wordpress.cn.com

1核1G vps一键关闭宝塔面板及一键恢复的设置参考

针对 1核1G低配VPS,通过编写简单的 Shell脚本​ 实现“一键关闭宝塔及LNMP”和“一键恢复”,能有效节省内存(1G内存非常宝贵,闲置时释放资源很有必要)。以下是具体方案和注意事项:

前提背景:

正常情况下,当你执行 service bt stop时,只会停止上述面板自身的相关进程,但不会动你通过宝塔安装的第三方服务(比如你搭建网站用的 Nginx、存数据的 MySQL、跑 PHP 的 PHP-FPM 等)。

二、此时的内存占用 vs 不安装宝塔的差异

假设你在安装宝塔后,额外安装了 LNMP 环境(Nginx + MySQL + PHP),那么:
  • 不安装宝塔时:内存仅占用系统基础进程(sshd、cron、systemd 等),约 50-150MB(轻量系统);
  • 安装宝塔但执行 service bt stop:内存仍会包含第三方服务的占用(比如 Nginx 约 20-50MB、MySQL 约 100-300MB、PHP-FPM 约 30-100MB),再加上系统基础进程,总占用可能在 200-500MB+(取决于你的配置)。

核心思路

通过两个脚本实现:
  • stop_all.sh:一键停止宝塔核心服务 + LNMP组件(Nginx、MySQL、PHP-FPM等);
  • start_all.sh:一键启动LNMP组件 + 宝塔核心服务。

一、脚本编写(关键步骤)

1. 准备工作:确认服务名称

先通过命令查看你实际安装的组件名称(避免脚本出错):
# 查看所有运行中服务(找LNMP相关)
systemctl list-units --type=service --state=running | grep -E 'nginx|mysql|mysqld|php-fpm|redis'

# 查看宝塔服务名称(通常是 bt)
systemctl status bt  # 若能显示状态,说明服务名是 bt
假设你的组件名称为(根据实际情况修改脚本):
  • 宝塔核心服务:bt
  • Web服务器:nginx
  • 数据库:mysqld(或 mariadb
  • PHP-FPM:php-fpm-74(根据你的PHP版本,如7.4)
  • Redis(可选):redis

2. 编写“一键关闭”脚本(stop_all.sh

作用:停止宝塔核心 + LNMP所有组件,释放内存。
#!/bin/bash
echo "===== 开始关闭宝塔及LNMP服务 ====="

# 停止宝塔核心服务(面板界面和管理进程)
systemctl stop bt
systemctl disable bt  # 可选:禁用开机启动(如需默认不启动)

# 停止LNMP组件(按依赖反向顺序:先停上层服务)
systemctl stop nginx       # Web服务器
systemctl stop php-fpm-74  # PHP-FPM(替换为你的版本)
systemctl stop mysqld      # 数据库(或 mariadb)
systemctl stop redis       # 可选:Redis(若安装了)

# 可选:禁用LNMP组件开机启动(如需默认不启动)
systemctl disable nginx php-fpm-74 mysqld redis

echo "===== 所有服务已停止,内存已释放 ====="
free -m  # 显示当前内存占用(验证效果)

3. 编写“一键恢复”脚本(start_all.sh

作用:启动LNMP组件(按依赖顺序)+ 宝塔核心服务,恢复正常使用。
#!/bin/bash
echo "===== 开始启动LNMP及宝塔服务 ====="

# 启动LNMP组件(按依赖顺序:先底层服务,后上层)
systemctl start mysqld      # 数据库(先启动,供PHP连接)
systemctl start php-fpm-74  # PHP-FPM(依赖数据库)
systemctl start nginx       # Web服务器(依赖PHP-FPM)
systemctl start redis       # 可选:Redis(若需要)

# 启用LNMP组件开机启动(可选:如需下次开机自动启动)
systemctl enable nginx php-fpm-74 mysqld redis

# 启动宝塔核心服务(面板界面)
systemctl start bt
systemctl enable bt  # 可选:启用宝塔开机启动

echo "===== 所有服务已启动,宝塔面板可访问 ====="
free -m  # 显示当前内存占用(验证效果)

二、使用方法

  1. 保存脚本:将上述两个脚本保存到 /root目录(或其他路径),例如:
    nano /root/stop_all.sh   # 粘贴关闭脚本内容,保存退出(Ctrl+O→回车→Ctrl+X)
    nano /root/start_all.sh  # 粘贴启动脚本内容,保存退出
  2. 赋予执行权限
    chmod +x /root/stop_all.sh /root/start_all.sh
  3. 一键执行
    • 关闭所有服务:bash /root/stop_all.sh
    • 恢复所有服务:bash /root/start_all.sh

三、关键注意事项(1G内存优化配置)

  1. 1G内存的LNMP优化配置(启动前必做!否则容易OOM崩溃):
    • MySQL:编辑配置文件(/etc/my.cnf),减小缓存:
      [mysqld]
      innodb_buffer_pool_size=64M  # 默认可能128M+,1G内存建议≤64M
      max_connections=50           # 减少连接数
    • PHP-FPM:编辑配置文件(/www/server/php/74/etc/php-fpm.conf),限制进程数:
      pm = dynamic
      pm.max_children = 10         # 最大进程数(1G内存建议≤15)
      pm.start_servers = 2
      pm.min_spare_servers = 2
      pm.max_spare_servers = 5
    • Nginx:编辑配置文件(/www/server/nginx/conf/nginx.conf),减小缓冲区:
      http {
          client_max_body_size 10m;  # 减小上传限制
          gzip_buffers 4 8k;          # 压缩缓冲区
      }
  2. 关闭不必要的组件
    如果你只用静态网站,可卸载MySQL/PHP,仅保留Nginx,内存占用会更低(Nginx单实例约20-30MB)。
  3. 避免频繁开关
    脚本本质是停止/启动服务,频繁操作可能导致数据库连接异常(如MySQL启动慢),建议仅在长期不用时关闭(如几天不用),短期不用可通过宝塔面板暂停网站(而非关闭整个服务)。

四、替代方案:更彻底的“内存节省”(适合极低负载)

如果你的VPS仅偶尔用(比如每周一次),且不需要持续运行网站,可考虑:
  1. 卸载宝塔面板:用命令行直接管理LNMP(适合熟悉Linux的用户),内存占用会比宝塔更低(省去宝塔核心进程的几十MB);
  2. 使用Docker容器:将LNMP部署在Docker中,不用时直接 docker stop 容器ID,需要时 docker start,隔离性更好,但1G内存跑Docker可能稍显紧张。

总结

通过 stop_all.shstart_all.sh脚本,你可以一键关闭宝塔及LNMP释放内存,需要时一键恢复。关键是优化LNMP配置(减小缓存和进程数),避免1G内存溢出。操作后记得用 free -m验证内存变化,确保达到预期效果。
打赏
谢谢谅解上文的粗糙,允许转载,请注明转载地址:Puo's 菜园子 » 1核1G vps一键关闭宝塔面板及一键恢复的设置参考
分享到

评论 抢沙发

做一个好的个人学习园地

主要网建,域名、集装箱物流、生活方法论的学习及研究,整理等内容

我的原创博客-忆秋年Puo's菜园子-我的学习园地

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册