帝国 CMS 怎么设置自动备份

域名注册
域名注册 初级会员超兽战士 👑年卡会员
发布于 2026-10-08 20:40 ·1 浏览 ·0 回复

照着这篇做完,你能给帝国CMS站点配上一套每天自动运行的数据库+附件备份,服务器出故障或被误操作时能快速还原。

需要先说明一点:帝国CMS后台的“备份与恢复数据”是手动点击的,没有“自动备份”开关。真正让它自动跑起来,靠的是服务器的定时任务(crontab 或宝塔面板的计划任务)。下面按顺序来。

第一步:找到数据库名、表前缀和站点目录

这一步要拿到三个关键信息,后面写备份命令全靠它们。

登录帝国CMS后台,地址一般是 http://你的域名/e/admin/。然后打开网站根目录下的 e/config/config.php(帝国CMS 7.5 在这里,老版本可能是 config/config.php),搜索这几个变量:

  • $ecms_config['db']['dbname'] —— 数据库名,比如 empire
  • $ecms_config['db']['dbuser'] / dbpassword —— 数据库账号密码
  • $ecms_config['db']['dbtbpre'] —— 表前缀,默认 phome_,安装时改过就以这里为准

站点目录就是帝国CMS的安装根目录,比如 /www/wwwroot/www.example.com。

注意:这个文件里有明文数据库密码,别随便发给别人,权限建议设成 644。

第二步:手动备份一次,确认流程能跑通

这一步的目的是先跑一遍、看清楚备份文件长什么样,避免自动任务配好了却没人验证。

后台左侧菜单点「系统」→「备份与恢复数据」→「备份数据」标签页。页面上会列出所有数据表,点「全选」,然后设置:

  • 备份方式:小站选「按数据表备份」,数据量大(单表超几十MB)选「按文件大小备份」,每卷填 1024 KB
  • 建表语句:选「添加」
  • 点「开始备份」

备份完成后页面会提示文件保存位置,通常在 /e/admin/ebak/bdata/ 下以日期命名的目录里。用 FTP 或宝塔文件管理器进去看一眼,确认有 .sql 文件生成。

注意:恢复数据入口是同一个页面里的「恢复数据」标签,恢复前会覆盖现有数据,正式站操作前先再备份一次当前数据。

第三步:配置服务器定时任务,实现自动备份

这是核心步骤,做完之后每天凌晨数据库会自动打包。

如果你用宝塔面板(推荐):登录宝塔 →「计划任务」→「添加任务」,任务类型选「备份数据库」,任务名称填 帝国CMS每日备份,执行周期选「每天」、时间填 03:00,数据库选你的帝国CMS库,保留份数填 7,保存即可。附件和模板再加一条,类型选「备份目录」,目录填站点路径,保留 5 份。

如果你用命令行:先建好备份目录 mkdir -p /home/backup,然后 crontab -e 添加一行:

0 3 * * * /usr/bin/mysqldump --defaults-extra-file=/root/.my.cnf --default-character-set=utf8mb4 empire | gzip > /home/backup/db_$(date +\%Y\%m\%d).sql.gz

其中 empire 换成你的数据库名。为避免密码出现在进程列表里,把账号密码写进 /root/.my.cnf:

[mysqldump]
user=你的数据库用户
password=你的数据库密码

保存后执行 chmod 600 /root/.my.cnf。

注意:crontab 里的 % 必须写成 \%,否则会被当成换行符,任务会静默失败。

第四步:把附件目录一起备份并清理过期文件

帝国CMS的图片、附件都在 d/file/ 目录,模板在 e/template/,这些不在数据库里,必须单独备份。

在 crontab 里再加一行:

0 4 * * * tar -czf /home/backup/file_$(date +\%Y\%m\%d).tar.gz -C /www/wwwroot/www.example.com d/file e/template

再加一条清理任务,只保留最近 7 天:

30 4 * * * find /home/backup -name "*.gz" -mtime +7 -delete

第二天执行 ls -lh /home/backup 检查有没有新文件生成,文件大小明显大于 0 才算成功。

小结

  • 帝国CMS后台只有手动备份,自动备份要靠服务器定时任务
  • 先手动备份一次验证流程,再配自动任务
  • 数据库用 mysqldump,附件和模板目录用 tar,两者都要备
  • 密码写进 .my.cnf 而不是命令行,crontab 里 % 要转义
  • 设置保留份数或定时清理,否则磁盘会被备份撑满
  • 配好后第二天必须去检查文件是否真的生成,别只看任务列表显示“成功”
版权声明:本文来自 GJ站长论坛《帝国 CMS 怎么设置自动备份》
原文链接:https://www.gj0.com/thread-1183.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~