mirror of https://github.com/jumpserver/jumpserver
具体体现在 日志监控页,定期回收过期的在线log
需要运行python manage.py crontab add来添加 运行 python manage.py crontab remove 来去掉 crontab -lpull/79/head
parent
b79056295b
commit
0e9a962506
|
@ -6,7 +6,10 @@ from contextlib import closing
|
|||
from io import open as copen
|
||||
from json import dumps
|
||||
from math import ceil
|
||||
import datetime
|
||||
import time
|
||||
import re
|
||||
import os
|
||||
from os.path import basename, dirname, exists, join
|
||||
from struct import unpack
|
||||
from subprocess import Popen
|
||||
|
@ -17,6 +20,7 @@ from jinja2 import FileSystemLoader, Template
|
|||
from jinja2.environment import Environment
|
||||
|
||||
from jumpserver.api import BASE_DIR
|
||||
from jlog.models import Log
|
||||
|
||||
|
||||
DEFAULT_TEMPLATE = join(BASE_DIR, 'templates', 'jlog', 'static.jinja2')
|
||||
|
@ -75,3 +79,28 @@ def renderTemplate(script_path, time_file_path, dimensions=(24, 80), templatenam
|
|||
return rendered
|
||||
|
||||
|
||||
def kill_invalid_connection():
|
||||
long_time_logs = []
|
||||
unfinished_logs = Log.objects.filter(is_finished=False)
|
||||
now = datetime.datetime.now()
|
||||
now_timestamp = int(time.mktime(now.timetuple()))
|
||||
for log in unfinished_logs:
|
||||
if (now - log.start_time).days > 1:
|
||||
long_time_logs.append(log)
|
||||
|
||||
for log in long_time_logs:
|
||||
try:
|
||||
log_file_mtime = int(os.stat(log.log_path).st_mtime)
|
||||
except OSError:
|
||||
log_file_mtime = 0
|
||||
|
||||
if (now_timestamp - log_file_mtime) > 3600:
|
||||
try:
|
||||
os.kill(int(log.pid), 9)
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
log.is_finished = True
|
||||
log.end_time = now
|
||||
log.save()
|
||||
|
||||
|
|
|
@ -152,5 +152,6 @@ STATIC_URL = '/static/'
|
|||
BOOTSTRAP_COLUMN_COUNT = 10
|
||||
|
||||
CRONJOBS = [
|
||||
('0 1 * * *', 'jasset.asset_api.asset_ansible_update_all')
|
||||
('0 1 * * *', 'jasset.asset_api.asset_ansible_update_all'),
|
||||
('1 * * * *', 'jlog.log_api.kill_invalid_connection'),
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue