宝塔面板下如何设置服务器在凌晨自动执行系统更新?

1次阅读

宝塔面板可通过三种方式实现凌晨自动系统更新:一、直接在计划任务中配置 yum 或 apt 命令;二、编写并调用自定义 Shell 脚本,支持日志记录;三、手动编辑系统 crontab,配合宝塔守护 crond 服务。

宝塔面板下如何设置服务器在凌晨自动执行系统更新?

如果您希望宝塔面板管理的服务器在凌晨自动执行系统更新,则需要通过宝塔的计划任务功能配置定时执行命令。以下是具体操作步骤:

一、使用宝塔计划任务执行 yum 或 apt 更新

该方法利用宝塔内置的计划任务模块,直接调用系统包管理器执行更新操作,无需手动编辑 crontab,适合大多数 CentOS/Ubuntu 系统。

1、登录宝塔面板,在左侧菜单栏点击 计划任务

2、点击右上角 添加计划任务 按钮。

3、在“任务类型”中选择Shell 脚本

4、在“任务名称”中填写 凌晨系统更新

5、在“执行周期”中设置为 每天 03:00(即凌晨三点)。

6、在“脚本内容”中根据系统类型输入对应命令:

CentOS/RHEL 系统:
sudo yum update -y && sudo yum clean all

Ubuntu/Debian 系统:
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y

7、点击 添加任务 保存。

二、通过自定义 Shell 脚本封装更新逻辑

该方法将更新命令封装为独立脚本文件,便于复用、调试与权限控制,并可加入日志记录和错误判断机制。

1、使用宝塔文件管理器或 SSH 进入 /www/server/script/ 目录(若不存在则新建)。

2、新建文件,命名为auto_update.sh

3、编辑该文件,写入以下内容(以 Ubuntu 为例):

#!/bin/bash
LOGFILE=”/www/wwwlogs/auto_update_$(date +%Y%m%d).log”
echo “=== $(date) 开始更新 ===” >> $LOGFILE
sudo apt update >> $LOGFILE 2>&1
sudo apt upgrade -y >> $LOGFILE 2>&1
sudo apt autoremove -y >> $LOGFILE 2>&1
echo “=== 更新完成 ===” >> $LOGFILE

4、通过 SSH 执行命令赋予执行权限:chmod +x /www/server/script/auto_update.sh

5、在宝塔计划任务中新增一项,类型选 Shell 脚本,执行周期设为 每天 03:00,脚本内容为:/www/server/script/auto_update.sh

三、直接编辑系统 crontab 并配合宝塔守护

该方法绕过宝塔计划任务界面,直接使用系统级 crontab 实现更高精度控制,适用于需严格隔离面板权限或已禁用宝塔计划任务的环境。

1、通过 SSH 使用命令 crontab -e 编辑当前 root 用户的定时任务。

2、在末尾新增一行(以 CentOS 为例):0 3 * * * /usr/bin/yum update -y && /usr/bin/yum clean all > /dev/null 2>&1

3、如需记录日志,可改为:0 3 * * * /usr/bin/yum update -y && /usr/bin/yum clean all > /var/log/yum_auto_update.log 2>&1

4、保存退出后,执行 systemctl restart crond 使配置生效。

5、在宝塔面板的 安全 页面中确认crond 服务处于运行状态

text=ZqhQzanResources