mirror of https://github.com/jumpserver/jumpserver
Merge pull request #105 from jumpserver/hot_fix_log
hot_fix(kill invalid connection) 紧急修复超时异常连接 修改日志参数 修改处理间隔,每10分钟处理一次 修改处理策略 ssh: 1小时不操作,就kill掉 web: 超过1天,就设置完成pull/1109/head
commit
a401440004
|
@ -15,6 +15,7 @@ from struct import unpack
|
||||||
from subprocess import Popen
|
from subprocess import Popen
|
||||||
from sys import platform, prefix, stderr
|
from sys import platform, prefix, stderr
|
||||||
from tempfile import NamedTemporaryFile
|
from tempfile import NamedTemporaryFile
|
||||||
|
from jumpserver.api import logger
|
||||||
|
|
||||||
from jinja2 import FileSystemLoader, Template
|
from jinja2 import FileSystemLoader, Template
|
||||||
from jinja2.environment import Environment
|
from jinja2.environment import Environment
|
||||||
|
@ -80,27 +81,26 @@ def renderTemplate(script_path, time_file_path, dimensions=(24, 80), templatenam
|
||||||
|
|
||||||
|
|
||||||
def kill_invalid_connection():
|
def kill_invalid_connection():
|
||||||
long_time_logs = []
|
|
||||||
unfinished_logs = Log.objects.filter(is_finished=False)
|
unfinished_logs = Log.objects.filter(is_finished=False)
|
||||||
now = datetime.datetime.now()
|
now = datetime.datetime.now()
|
||||||
now_timestamp = int(time.mktime(now.timetuple()))
|
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:
|
for log in unfinished_logs:
|
||||||
try:
|
try:
|
||||||
log_file_mtime = int(os.stat(log.log_path).st_mtime)
|
log_file_mtime = int(os.stat('%s.log' % log.log_path).st_mtime)
|
||||||
except OSError:
|
except OSError:
|
||||||
log_file_mtime = 0
|
log_file_mtime = 0
|
||||||
|
|
||||||
if (now_timestamp - log_file_mtime) > 3600:
|
if (now_timestamp - log_file_mtime) > 3600:
|
||||||
|
if log.login_type == 'ssh':
|
||||||
try:
|
try:
|
||||||
os.kill(int(log.pid), 9)
|
os.kill(int(log.pid), 9)
|
||||||
except OSError:
|
except OSError:
|
||||||
pass
|
pass
|
||||||
|
elif (now - log.start_time).days < 1:
|
||||||
|
continue
|
||||||
|
|
||||||
log.is_finished = True
|
log.is_finished = True
|
||||||
log.end_time = now
|
log.end_time = now
|
||||||
log.save()
|
log.save()
|
||||||
|
logger.warn('kill log %s' % log.log_path)
|
||||||
|
|
|
@ -153,5 +153,5 @@ BOOTSTRAP_COLUMN_COUNT = 10
|
||||||
|
|
||||||
CRONJOBS = [
|
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'),
|
('*/10 * * * *', 'jlog.log_api.kill_invalid_connection'),
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue