96 lines
3.7 KiB
SQL
96 lines
3.7 KiB
SQL
-- ============================================
|
||
-- 日志清理定时任务初始化 SQL
|
||
-- ============================================
|
||
|
||
-- 1. 插入定时任务记录到 sys_job 表
|
||
-- 说明:每天凌晨 0 点自动清理 15 天前的日志数据
|
||
-- 注意:LogCleanTask 类位于 fastbee-admin 模块的 com.fastbee.web.task 包下
|
||
INSERT INTO `sys_job` (
|
||
`job_name`,
|
||
`job_group`,
|
||
`invoke_target`,
|
||
`cron_expression`,
|
||
`misfire_policy`,
|
||
`concurrent`,
|
||
`status`,
|
||
`create_by`,
|
||
`create_time`,
|
||
`remark`
|
||
) VALUES (
|
||
'日志清理任务', -- 任务名称
|
||
'SYSTEM', -- 任务组名
|
||
'logCleanTask.cleanLogs(30)', -- 调用目标字符串
|
||
'0 0 0 * * ?', -- Cron 表达式:每天凌晨 00:00:00
|
||
'3', -- 错误策略:不触发立即执行
|
||
'1', -- 禁止并发执行
|
||
'0', -- 状态:正常
|
||
'admin', -- 创建者
|
||
NOW(), -- 创建时间
|
||
'每天凌晨0点自动清理15天前的日志数据(iot_event_log、sys_oper_log、sys_logininfor、iot_alert_log、sys_job_log、notify_log)'
|
||
);
|
||
|
||
-- ============================================
|
||
-- 清理的日志表说明
|
||
-- ============================================
|
||
-- 1. iot_event_log - IoT 事件日志
|
||
-- 2. sys_oper_log - 系统操作日志
|
||
-- 3. sys_logininfor - 登录日志
|
||
-- 4. iot_alert_log - 设备告警日志
|
||
-- 5. sys_job_log - 定时任务日志
|
||
-- 6. notify_log - 通知日志
|
||
--
|
||
-- 注意:iot_device_log 表(设备监测日志)不参与清理
|
||
-- 该表为核心数据,目前有 214 万条记录,需要数据迁移方案
|
||
|
||
-- 2. 可选:添加日志清理权限菜单(根据需要执行)
|
||
-- 如果需要在管理后台显示权限按钮,可以执行以下 SQL
|
||
/*
|
||
INSERT INTO `sys_menu` (
|
||
`menu_name`,
|
||
`parent_id`,
|
||
`order_num`,
|
||
`path`,
|
||
`component`,
|
||
`query`,
|
||
`is_frame`,
|
||
`is_cache`,
|
||
`menu_type`,
|
||
`visible`,
|
||
`status`,
|
||
`perms`,
|
||
`icon`,
|
||
`create_by`,
|
||
`create_time`,
|
||
`remark`
|
||
) VALUES (
|
||
'日志清理', -- 菜单名称
|
||
2, -- 父菜单ID(根据实际情况调整,2通常是系统管理)
|
||
99, -- 显示顺序
|
||
'', -- 路由地址
|
||
'', -- 组件路径
|
||
'', -- 路由参数
|
||
1, -- 不是外链
|
||
0, -- 不缓存
|
||
'F', -- 菜单类型:F=按钮
|
||
'0', -- 显示状态
|
||
'0', -- 菜单状态
|
||
'system:log:clean', -- 权限标识
|
||
'#', -- 图标
|
||
'admin', -- 创建者
|
||
NOW(), -- 创建时间
|
||
'日志清理按钮权限'
|
||
);
|
||
*/
|
||
|
||
-- ============================================
|
||
-- 验证定时任务是否创建成功
|
||
-- ============================================
|
||
-- SELECT * FROM sys_job WHERE job_name = '日志清理任务';
|
||
|
||
-- ============================================
|
||
-- 手动触发清理(可选)
|
||
-- ============================================
|
||
-- 如果需要立即清理历史数据,可以通过以下方式:
|
||
-- 方式1:通过管理后台 -> 系统监控 -> 定时任务 -> 点击"执行一次"
|
||
-- 方式2:调用 API 接口:POST /system/log/clean?days=30
|
||
-- 方式3:数据库执行:UPDATE sys_job SET status = '0' WHERE job_name = '日志清理任务'; |