当前位置:网站首页 >  百科

帝国CMS系统运行日志手动清理+自动定时清理完整实操指南

时间:2026年05月31日 05:49:26 来源:易频IT社区

一、手动清理方法(适合一次性清理)

手动清理分为后台一键清理、数据库文件深度清理两种,新手优先用后台一键清理,操作零难度。

1.1 后台一键清理

  1. 登录你的帝国CMS后台,访问地址为你的域名/e/admin,输入管理员账号密码登录。
  2. 在左侧菜单栏找到并点击 系统设置 → 系统日志与优化 → 清理冗余数据,进入清理页面。
  3. 页面会显示3类可清理的日志项:
    • 后台操作日志:记录所有后台登录、操作行为
    • 错误提示日志:记录系统运行的错误信息
    • 前台搜索关键词日志:记录用户前台搜索的关键词
  4. 勾选你需要清理的日志项,在「保留最近N天日志」输入框填写你要保留的天数(比如填30即保留最近30天,填0即全部清空),点击 开始清理,等待页面提示清理完成即可。

1.2 文件日志深度清理

帝国CMS除了数据库存储日志,还会在本地文件目录存储运行日志,长期不清理会占用大量磁盘空间,清理步骤:

  1. 通过FTP、服务器面板文件管理器连接你的网站空间,进入网站根目录下的 /e/data/logs/ 目录。
  2. 删除该目录下所有后缀为.txt的日志文件,注意:仅删除文件,不要删除logs目录本身,不要修改logs目录的权限(默认755即可)

1.3 数据库手动清理(后台清理失效时用)

如果后台清理失败,可以直接进入数据库执行清理操作,步骤:

  1. 打开你的数据库管理工具(比如phpMyAdmin、服务器面板自带的数据库管理功能),进入帝国CMS对应的数据库。
  2. 如果需要完全清空所有日志,直接执行以下SQL语句,如果你修改过默认表前缀,需要把语句中的enews_改成你自己的表前缀
    ```
    TRUNCATE TABLE `enewslog`;
    TRUNCATE TABLE `enewserrorlog`;
    TRUNCATE TABLE `enewssearchlog`;
    TRUNCATE TABLE `enewspublog`;
    ```
    
  3. 执行完成后提示成功即清理完毕。

二、自动定时清理方法(适合长期运维)

对于长期运营的站点,配置自动清理可以不用手动操作,定期自动清理冗余日志,分为系统自带自动清理和服务器定时任务两种方案。

2.1 系统自带自动清理(最简单)

  1. 登录后台,点击左侧菜单栏 系统设置 → 系统参数设置 → 基本设置
  2. 向下滑动页面找到「自动清理日志天数」选项,默认值为0(即不开启自动清理),填入你需要保留的日志天数,比如需要保留最近90天就填90。
  3. 拉到页面底部点击「保存设置」即可,系统会在每次有管理员访问后台时自动触发清理,删除超过保留天数的日志。

2.2 服务器定时任务清理(更稳定)

帝国CMS系统运行日志手动清理+自动定时清理完整实操指南

如果你的后台访问频率低,系统自带自动清理触发不及时,可以配置服务器定时任务,定期自动执行清理,适合Linux服务器和虚拟主机:

  1. 在你的网站目录创建一个名为cleaneclog.php的文件,将以下代码复制进去,修改两处配置:
    ```
    query("DELETE FROM {$prefix}enewslog WHERE addtime < ".($now_time - $keep_days86400));
    $db->query("DELETE FROM {$prefix}enewserrorlog WHERE addtime < ".($now_time - $keep_days86400));
    $db->query("DELETE FROM {$prefix}enewssearchlog WHERE addtime < ".($now_time - $keep_days86400));
    $db->query("DELETE FROM {$prefix}enewspublog WHERE addtime < ".($now_time - $keep_days86400));
    // 清理文件日志
    $log_dir = $_SERVER['DOCUMENT_ROOT'].'/e/data/logs/';
    if(is_dir($log_dir)){
    $handle = opendir($log_dir);
    while(($file = readdir($handle)) !== false){
    $file_path = $log_dir.$file;
    if(is_file($file_path) && filemtime($file_path) < ($now_time - $keep_days86400)){
    unlink($file_path);
    }
    }
    closedir($handle);
    }
    echo "帝国CMS日志清理完成";
    ?>
    ```
    
    需要修改的内容:第一把第3行的/www/wwwroot/你的网站根目录改成你自己网站的实际绝对路径,第二把第5行的$keep_days = 90改成你需要保留的天数,保存文件。
  2. 如果是Linux独立服务器,添加Crontab定时任务:执行crontab -e命令,在打开的编辑页末尾添加以下规则,设置每天凌晨2点自动执行一次:
    ```
    0 2    /usr/local/php/bin/php 你的脚本绝对路径/cleaneclog.php > /dev/null 2>&1
    ```
    
    把代码中的/usr/local/php/bin/php改成你服务器PHP的实际执行路径,你的脚本绝对路径/cleaneclog.php改成刚才创建的脚本的实际绝对路径,保存退出即可。
  3. 如果是虚拟主机,进入虚拟主机控制面板找到「定时任务」功能,添加定时访问https://你的域名/cleaneclog.php,设置执行周期为每天一次即可。

三、常见问题排查

问题1:清理后网站打不开怎么办?
只要按照步骤仅清理日志文件和日志表,不会影响站点核心数据,建议清理前先备份数据库和网站文件,一旦出错可以快速恢复。

问题2:自动清理不生效是什么原因?
90%的原因是脚本中填写的网站根目录路径错误,或者PHP执行路径错误,查看服务器定时任务的执行日志就能定位问题。

问题3:清理权限报错怎么办?
检查logs目录的权限,设置为755即可,脚本文件权限设置为644即可。

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图