宝塔计划任务怎么写?Shell 脚本、备份、日志切割全类型
想在宝塔面板里让服务器定时跑脚本、自动备份、定期切日志,入口在左侧导航栏的 计划任务:点进去再点 添加任务,在「任务类型」里选好类型、填好参数后提交即可,无需自己写 crontab 表达式。
本文把计划任务支持的 12 种任务类型讲全,并说清每种的关键参数怎么填;再补一个容易被忽略的 脚本库 功能,让你把常用脚本存起来反复调用。
计划任务在哪、怎么创建?
- 登录宝塔面板,点击左侧导航栏的 计划任务,进入计划任务列表页面。

- 点击 添加任务,进入添加计划任务页面。
- 填写计划任务信息,点击 提交 即可创建。

涉及备份、查杀等类型的「消息通道 / 备份提醒」需要先配置告警消息通道,才能把执行结果或失败告警发到微信、钉钉、邮件等,具体见官方文档《配置告警消息通道》。
12 种任务类型,关键参数怎么填?
创建任务时的核心一步就是选「任务类型」,不同类型要填的参数不一样。下面按类型说明。
Shell 脚本
选「Shell 脚本」后,把要执行的脚本内容填进脚本输入框即可。有两点要注意:
- 提交前检查脚本:确保脚本内容正确,否则会导致脚本执行失败、无法执行。
- 受限命令:为保证服务器安全稳定,shell 脚本中以下命令不可用:
shutdown、init 0、mkfs、passwd、chpasswd、--stdin、mkfs.ext、mke2fs。
备份网站
| 参数 | 怎么填 |
|---|---|
| 任务名称 | 根据备份的网站名称自动命名 |
| 执行周期 | 按实际情况选备份网站的执行时间 |
| 备份网站 | 可选指定网站,也可以备份所有网站 |
| 备份路径 | 服务器磁盘(默认 /www/backup/site),或已安装的存储插件(阿里云 OSS、七牛云存储、百度 BOS、腾讯云 COS 等) |
| 备份保留数量 | 默认保存 3 份,保留就近备份文件以减少占用空间 |
| 备份提醒 | 设置消息通道,备份失败时发送告警 |
| 排除规则 | 可选择部分文件或目录不备份 |
备份数据库
参数与「备份网站」基本一致,区别在备份对象与默认路径:
- 备份数据库:可选指定数据库,也可以备份所有数据库。
- 备份路径:服务器磁盘默认
/www/backup/database,同样支持上述存储插件。 - 备份保留数量:默认保存 3 份。
远程数据库不支持备份表。
数据库增量备份
与普通「备份数据库」类似,但多一个 压缩密码 参数,且有以下限制:
- 压缩密码:请牢记,以免因密码缺失导致无法恢复和下载数据。
- 默认备份位置:服务器磁盘
/www/backup/database。 - 暂不支持 SQLServer、MongoDB、Redis、PgSQL 的备份。
网站日志切割
用于定期切分网站访问日志,防止日志文件无限膨胀:
- 切割日志(即备份保留数量):默认保存 180 份,可按需更改。
- 只切分项目的访问日志;项目日志需前往「网站 → 项目 → 项目日志」单独配置。
- 切割后的日志存放在所选目录下的
history_backups文件夹中。
备份目录
按目录维度做定时备份:
- 备份目录:自行选择需要备份的目录。
- 备份位置:服务器磁盘默认
/www/backup/path,或存储插件。 - 备份保留数量:默认保存 3 份。
- 排除规则:可选择部分文件或目录不备份。
木马查杀
- 查杀站点:可选指定站点,也可以查杀所有站点。
- 消息通道:把木马查杀结果发送到已设置的消息通道。
同步时间
- 时区选择:按实际选择时区。
- 默认从 NTP 服务器同步时间;失败时将同步 bt.cn 的服务器时间。
释放内存
- 任务名称默认「释放内存」。
- 释放 PHP、MYSQL、PURE-FTPD、APACHE、NGINX 的内存占用。
- 官方建议在每天半夜执行。
访问 URL
用于定时请求某个 URL(如触发缓存预热、心跳探测):
- URL 地址:输入需要请求的 URL。
- User-Agent:按需输入请求的 User-Agent。
网站启停
按固定节奏定时开启 / 关闭站点:
- 执行周期:每天一次。
- 站点:选择需要开启或关闭的站点。
- 开启时间、停止时间:分别选择开启和停止的时间点。
日志清理
定期清理指定类型日志:
- 任务名称默认「日志清理」。
- 清理类型:按实际选择需要清理的日志类型。
- 自定义选择的目录支持切割的日志类型有:
.log、.txt、.out、.err、.log.1。
脚本库:把常用脚本存起来反复调用
除了在任务里临时写脚本,宝塔还在「计划任务」顶部提供了 脚本库,用于集中管理常用脚本:
- 点击顶部导航栏的 脚本库,进入脚本库页面。

- 在脚本库里可以找到宝塔官方提供的常用脚本,也可以 创建脚本 上传自己的脚本,需要时直接使用。
使用脚本库时有几点约定:
- 当前仅支持 Python 和 Shell 两种脚本。
- 返回类型:请根据返回类型在脚本执行结束时输出符合预期的值。
- 脚本参数:如果勾选需要脚本参数,使用当前脚本时需传递一个参数,并在脚本的第一个参数中接收。
- 编码声明:Python 脚本需指定编码(如
#coding: utf-8);Shell 脚本可以用#!/bin/bash或#!/bin/sh开头,未指定类型时默认按 Shell 脚本执行。
信息来源
本文事实以宝塔官方文档为准:《计划任务》、《脚本库》、《配置告警消息通道》。
常见问题
宝塔计划任务里的 Shell 脚本怎么写?哪些命令不能用?
在计划任务列表点「添加任务」,任务类型选「Shell 脚本」,把脚本内容填进脚本输入框再点提交即可。出于安全考虑,shell 脚本中以下命令不可用:shutdown、init 0、mkfs、passwd、chpasswd、--stdin、mkfs.ext、mke2fs。提交前务必确认脚本内容正确,否则会导致执行失败。
备份网站/数据库默认保存在哪?保留几份?
备份网站默认保存在服务器磁盘的 /www/backup/site,备份数据库默认在 /www/backup/database;也可以改选阿里云 OSS、七牛云存储、百度 BOS、腾讯云 COS 等存储插件。备份保留数量默认保存 3 份,保留就近的备份文件,可减少占用空间。
数据库增量备份和普通「备份数据库」有什么区别?
两者都会备份数据库,但增量备份支持设置压缩密码,需要牢记密码以免无法恢复下载数据。增量备份暂不支持 SQLServer、MongoDB、Redis、PgSQL;此外无论哪种方式,远程数据库都不支持备份表。
网站日志切割会切掉我的访问日志吗?
不会删除。日志切割只切分项目的访问日志(项目日志需到「网站 → 项目 → 项目日志」单独配置),切割后的日志默认保留 180 份,存放在所选目录下的 history_backups 文件夹中。
脚本库和直接在任务里写脚本有什么区别?
脚本库是把常用脚本集中存放,可以在「计划任务 → 脚本库」里使用宝塔官方脚本或上传自定义脚本,需要时直接反复调用,不用每次重写。脚本库目前只支持 Python 和 Shell 脚本,脚本支持参数、返回类型和编码声明。
计划任务支持哪些执行周期?
每种任务类型都有「执行周期」这一项,可按实际需要选择执行的间隔或具体时间。例如「网站启停」固定为每天一次,配合开启时间和停止时间实现定时开关站;「释放内存」官方建议在每天半夜执行。