diff --git a/jumpserver.py b/jumpserver.py index 5e5556c68..fcd58ae12 100755 --- a/jumpserver.py +++ b/jumpserver.py @@ -129,19 +129,19 @@ def connect(host, port, user, password): global foo foo = pxssh.pxssh() foo.login(host, user, password, port=port, auto_prompt_reset=False) - log = Logs(user=user, host=host, logfile=logfile_name, start_time=timestamp_start) # 日志信息记录到数据库 + log = Logs(user=user, host=host, logfile=logfile_name, start_time=timestamp_start, ppid=os.getpid()) # 日志信息记录到数据库 log.save() pid = Pid(ppid=os.getpid(), cpid=foo.pid) pid.save() logfile = open(logfile_name, 'a') # 记录日志文件 - logfile.write('\n%s\n' % logtime_start) + logfile.write('\nDateTime:%s' % logtime_start) foo.logfile = logfile foo.sendline('') signal.signal(signal.SIGWINCH, sigwinch_passthrough) - foo.interact(escape_character=chr(28)) - logfile.write('\n%s' % time.strftime('%Y/%m/%d %H:%M:%S')) + foo.interact(escape_character=chr(28)) # 进入交互模式 + logfile.write('\nEndTime: %s' % time.strftime('%Y/%m/%d %H:%M:%S')) log.finish = 1 log.end_time = int(time.time()) log.save() diff --git a/webroot/AutoSa/AutoSa/views.py b/webroot/AutoSa/AutoSa/views.py index 9fdcc526d..064319f44 100644 --- a/webroot/AutoSa/AutoSa/views.py +++ b/webroot/AutoSa/AutoSa/views.py @@ -4,7 +4,7 @@ from django.http import HttpResponse from django.template import RequestContext from django.shortcuts import render_to_response from django.http import HttpResponseRedirect -from UserManage.models import User, Group +from UserManage.models import User, Group, Logs, Pid from Assets.models import Assets, AssetsUser import subprocess from Crypto.Cipher import AES @@ -20,6 +20,8 @@ from UserManage.forms import UserAddForm, GroupAddForm import paramiko from django.core.servers.basehttp import FileWrapper from AutoSa.settings import CONF_DIR +from django.core.paginator import Paginator, InvalidPage, EmptyPage +import time, datetime cf = ConfigParser.ConfigParser() @@ -285,7 +287,7 @@ def downKey(request): elif request.session.get('admin') == 2: username = request.GET.get('username') - filename = '%s/keys/%s' % (base_dir, username) + filename = '%s/%s' % (rsa_dir, username) f = open(filename) data = f.read() f.close() @@ -871,7 +873,7 @@ def chgKey(request): if error: return render_to_response('info.html', {'error': error}) - keyfile = '%s/keys/%s' % (base_dir, username) + keyfile = '%s/%s' % (rsa_dir, username) jm = PyCrypt(key) ret = bash('ssh-keygen -p -P %s -N %s -f %s' % (jm.decrypt(user.key_pass), password, keyfile)) if ret != 0: @@ -947,8 +949,41 @@ def downFile(request): response['Content-Disposition'] = 'attachment; filename=%s' % os.path.basename(path) return response - - return render_to_response('downFile.html', {'username': username}, - context_instance=RequestContext(request)) \ No newline at end of file + context_instance=RequestContext(request)) + + +@admin_required +def logView(request): + thirtyDayAgo = (datetime.datetime.now() - datetime.timedelta(30)) + thirtyDayAgoStamp = int(thirtyDayAgo.timetuple()) + logs_all = Logs.objects.filter(start_time__gt=thirtyDayAgoStamp) + paginator = Paginator(logs_all, 20) + + try: + page = int(request.GET.get('page', 1)) + except ValueError: + page = 1 + + try: + logs = paginator.page(page) + except (EmptyPage, InvalidPage): + logs = paginator.page(paginator.num_pages) + + return render_to_response('logView.html', + {'logs': logs}, + context_instance=RequestContext(request)) + + + + + + + + + + + + + diff --git a/webroot/AutoSa/UserManage/models.py b/webroot/AutoSa/UserManage/models.py index de5c64670..a257e0f68 100644 --- a/webroot/AutoSa/UserManage/models.py +++ b/webroot/AutoSa/UserManage/models.py @@ -28,6 +28,7 @@ class Logs(models.Model): host = models.CharField(max_length=20) logfile = models.CharField(max_length=1000) finish = models.SmallIntegerField(max_length=4, default=0) + ppid = models.IntegerField() start_time = models.IntegerField() end_time = models.IntegerField(default=0) diff --git a/webroot/AutoSa/templates/base.html b/webroot/AutoSa/templates/base.html index 853e4697f..72e3e3c11 100644 --- a/webroot/AutoSa/templates/base.html +++ b/webroot/AutoSa/templates/base.html @@ -121,6 +121,10 @@