Shell部分
实现返回行号和返回日志内容的功能是一个shell脚本,上shell
看到shell 是不是很亲切,现在知道传递的两个参数的作用了吧,host 和 项目id就是为了确定日志文件的路径,如果命令行参数没有传递行号就返回行号,如果有行号,就返回该行内容。
#!/bin/bash
set -e
HOST=$1
SERVICENAME=$2
LINENUM=$3
LOGFILE="/opt/$SERVICENAME/logs/catalina.out"
if [ $LINENUM ];then
ssh -A -T root@$HOST "sed -n ${LINENUM}p $LOGFILE"
else
ssh -A -T root@$HOST "wc -l $LOGFILE|awk '{print \$1}'"
fi
前端部分
这部分就是ajax请求了,取出日志内容,动态添加到页面上,唯一的一个坑是,setInterval,我原来写的是一个while的死循环,在循环体里日志取到最后一行的时候break。我擦,逻辑上很流畅有没有,死活没效果,死活不工作。后来知道了,while搞的太快,不等后台返回,就走到下一次循环了。要不while里面来个sleep。要不弄个定时器,后来上了一个定时器,爽歪歪!
{% load staticfiles %}