pull/109/head
Mr Chen 6 years ago
parent 56ce2a666e
commit cf2167400a
  1. 23
      plugins/l2tp/install.sh
  2. 50
      plugins/pm2/index.py
  3. 33
      plugins/pm2/js/pm2.js
  4. 53
      route/static/app/public.js

@ -11,25 +11,32 @@ serverPath=$(dirname "$rootPath")
install_tmp=${rootPath}/tmp/bt_install.pl install_tmp=${rootPath}/tmp/bt_install.pl
npm install pm2 -g
Install_pm2() Install_l2tp()
{ {
isStart=""
while [[ "$isStart" == "" ]];
do
echo -e ".\c"
sleep 0.5
startTime=`date +%s`
echo $startTime,'end'
done
echo '正在安装脚本文件...' > $install_tmp echo '正在安装脚本文件...' > $install_tmp
mkdir -p $serverPath/pm2 mkdir -p $serverPath/l2tp
echo '1.0' > $serverPath/pm2/version.pl echo '1.0' > $serverPath/l2tp/version.pl
echo '安装完成' > $install_tmp echo '安装完成' > $install_tmp
} }
Uninstall_pm2() Uninstall_l2tp()
{ {
rm -rf $serverPath/pm2 rm -rf $serverPath/l2tp
echo "卸载完成" > $install_tmp echo "卸载完成" > $install_tmp
} }
action=$1 action=$1
if [ "${1}" == 'install' ];then if [ "${1}" == 'install' ];then
Install_pm2 Install_l2tp
else else
Uninstall_pm2 Uninstall_l2tp
fi fi

@ -301,6 +301,48 @@ def uninstallMod():
return public.returnJson(True, '卸载成功!') return public.returnJson(True, '卸载成功!')
def nodeLogRun():
args = getArgs()
data = checkArgs(args, ['pname'])
if not data[0]:
return data[1]
pname = args['pname']
return pm2LogDir() + '/logs/' + pname + '-out.log'
def nodeLogErr():
args = getArgs()
data = checkArgs(args, ['pname'])
if not data[0]:
return data[1]
pname = args['pname']
return pm2LogDir() + '/logs/' + pname + '-error.log'
def nodeLogClearRun():
args = getArgs()
data = checkArgs(args, ['pname'])
if not data[0]:
return data[1]
pname = args['pname']
path = pm2LogDir() + '/logs/' + pname + '-out.log'
public.execShell('rm -rf ' + path + '&& touch ' + path)
return public.returnJson(True, '清空运行成功')
def nodeLogClearErr():
args = getArgs()
data = checkArgs(args, ['pname'])
if not data[0]:
return data[1]
pname = args['pname']
path = pm2LogDir() + '/logs/' + pname + '-error.log'
public.execShell('rm -rf ' + path + '&& touch ' + path)
return public.returnJson(True, '清空错误成功')
if __name__ == "__main__": if __name__ == "__main__":
func = sys.argv[1] func = sys.argv[1]
if func == 'status': if func == 'status':
@ -321,6 +363,14 @@ if __name__ == "__main__":
print pm2Start() print pm2Start()
elif func == 'get_logs': elif func == 'get_logs':
print pm2Log() print pm2Log()
elif func == 'node_log_run':
print nodeLogRun()
elif func == 'node_log_err':
print nodeLogErr()
elif func == 'node_log_clear_run':
print nodeLogClearRun()
elif func == 'node_log_clear_err':
print nodeLogClearErr()
elif func == 'versions': elif func == 'versions':
print pm2VerList() print pm2VerList()
elif func == 'set_node_version': elif func == 'set_node_version':

@ -279,12 +279,18 @@ function nodeStart(pname){
}); });
} }
function pm2RollingLogs(func,pname){
var args = {'pname':pname}
_args = JSON.stringify(args);
pluginRollingLogs('pm2','',func, _args);
}
function nodeLog(pname){ function nodeLog(pname){
var html = ''; var html = '';
html += '<button onclick="nodeLogRun(\''+pname+'\')" class="btn btn-default btn-sm">运行日志</button>'; html += '<button onclick="pm2RollingLogs(\'node_log_run\',\''+pname+'\')" class="btn btn-default btn-sm">运行日志</button>';
html += '<button onclick="nodeLogRun(\''+pname+'\')" class="btn btn-default btn-sm">清空运行日志</button>'; html += '<button onclick="nodeLogClearRun(\''+pname+'\')" class="btn btn-default btn-sm">清空运行日志</button>';
html += '<button onclick="nodeLogError(\''+pname+'\')" class="btn btn-default btn-sm">错误日志</button>'; html += '<button onclick="pm2RollingLogs(\'node_log_err\',\''+pname+'\')" class="btn btn-default btn-sm">错误日志</button>';
html += '<button onclick="nodeLogError(\''+pname+'\')" class="btn btn-default btn-sm">清空错误日志</button>'; html += '<button onclick="nodeLogClearError(\''+pname+'\')" class="btn btn-default btn-sm">清空错误日志</button>';
var loadOpen = layer.open({ var loadOpen = layer.open({
type: 1, type: 1,
@ -295,9 +301,18 @@ function nodeLog(pname){
} }
function nodeLogError(pname){ function nodeLogClearRun(pname){
var data = 'pname=' + pname;
pm2Post('node_log_clear_run', data, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg,{icon:rdata.status?1:2});
});
}
} function nodeLogClearError(pname){
var data = 'pname=' + pname;
pm2Post('node_log_clear_err', data, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg,{icon:rdata.status?1:2});
});
}

@ -1852,6 +1852,59 @@ function pluginLogs(_name, version, func, line){
},'json'); },'json');
},'json'); },'json');
} }
function pluginRollingLogs(_name, version, func, _args, line){
if ( typeof(version) == 'undefined' ){
version = '';
}
var func_name = 'error_log';
if ( typeof(func) != 'undefined' ){
func_name = func;
}
var file_line = 100;
if ( typeof(line) != 'undefined' ){
file_line = line;
}
var reqTimer = null;
layer.open({
type: 1,
title: _name + '日志',
area: '640px',
end: function(){
// console.log('end!!!');
if (reqTimer){
clearInterval(reqTimer);
}
},
content:'<div class="change-default pd20" id="plugins_rolling_logs">\
<textarea readonly="readonly" style="margin: 0px;width: 100%;height: 360px;background-color: #333;color:#fff; padding:0 5px" id="roll_info_log"></textarea>\
</div>'
});
$.post('/plugins/run', {name:_name, func:func_name, version:version,args:_args},function (data) {
var fileName = data.data;
reqTimer = setInterval(function(){
$.post('/files/get_last_body', 'path=' + fileName+'&line='+file_line, function(rdata) {
if (!rdata.status){
return;
}
if(rdata.data == '') {
rdata.data = '当前没有日志!';
}
var ebody = '<textarea readonly="" style="margin: 0px;width: 100%;height: 360px;background-color: #333;color:#fff; padding:0 5px" id="roll_info_log">'+rdata.data+'</textarea>';
$("#plugins_rolling_logs").html(ebody);
var ob = document.getElementById('roll_info_log');
ob.scrollTop = ob.scrollHeight;
},'json');
},1000);
},'json');
}
/*** 其中功能,针对插件通过库使用 end ***/ /*** 其中功能,针对插件通过库使用 end ***/

Loading…
Cancel
Save