mirror of https://github.com/jumpserver/jumpserver
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.1 KiB
40 lines
1.1 KiB
# -*- coding: utf-8 -*- |
|
# |
|
import datetime |
|
from django.utils import timezone |
|
from celery import shared_task |
|
|
|
from ops.celery.decorator import ( |
|
register_as_period_task |
|
) |
|
from .models import UserLoginLog, OperateLog, FTPLog |
|
from common.utils import get_log_keep_day |
|
|
|
|
|
def clean_login_log_period(): |
|
now = timezone.now() |
|
days = get_log_keep_day('LOGIN_LOG_KEEP_DAYS') |
|
expired_day = now - datetime.timedelta(days=days) |
|
UserLoginLog.objects.filter(datetime__lt=expired_day).delete() |
|
|
|
|
|
def clean_operation_log_period(): |
|
now = timezone.now() |
|
days = get_log_keep_day('OPERATE_LOG_KEEP_DAYS') |
|
expired_day = now - datetime.timedelta(days=days) |
|
OperateLog.objects.filter(datetime__lt=expired_day).delete() |
|
|
|
|
|
def clean_ftp_log_period(): |
|
now = timezone.now() |
|
days = get_log_keep_day('FTP_LOG_KEEP_DAYS') |
|
expired_day = now - datetime.timedelta(days=days) |
|
FTPLog.objects.filter(date_start__lt=expired_day).delete() |
|
|
|
|
|
@register_as_period_task(interval=3600*24) |
|
@shared_task |
|
def clean_audits_log_period(): |
|
clean_login_log_period() |
|
clean_operation_log_period() |
|
clean_ftp_log_period()
|
|
|