function httpPost(method, args, callback){
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
$.post('/plugins/run', {name:'apache', func:method, args:JSON.stringify(args)}, function(data) {
layer.close(loadT);
if (!data.status){
layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']});
return;
}
if(typeof(callback) == 'function'){
callback(data);
}
},'json');
}
function httpPluginService(_name, version){
var data = {name:_name, func:'status'}
if ( typeof(version) != 'undefined' ){
data['version'] = version;
} else {
version = '';
}
httpPost('status', data, function(data){
if (data.data == 'start'){
orPluginSetService(_name, true, version);
} else {
orPluginSetService(_name, false, version);
}
});
}
function orPluginSetService(_name ,status, version){
var serviceCon ='
当前状态:'+(status ? '开启' : '关闭' )+
'
\
\
\
\
';
$(".soft-man-con").html(serviceCon);
}
function orPluginOpService(a, b, v,request_callback) {
var c = "name=" + a + "&func=" + b;
if(v != ''){
c = c + '&version='+v;
}
var d = "";
switch(b) {
case "stop":d = '停止';break;
case "start":d = '启动';break;
case "restart":d = '重启';break;
case "reload":d = '重载';break;
}
layer.confirm( msgTpl('您真的要{1}{2}{3}服务吗?', [d,a,v]), {icon:3,closeBtn: 2}, function() {
httpPost('get_os',{},function(data){
var rdata = $.parseJSON(data.data);
if (!rdata['auth']){
layer.prompt({title: '检查到权限不足,需要输入密码!', formType: 1},function(pwd, index){
layer.close(index);
var data = {'pwd':pwd};
c += '&args='+JSON.stringify(data);
orPluginOpServiceOp(a,b,c,d,a,v,request_callback);
});
} else {
orPluginOpServiceOp(a,b,c,d,a,v,request_callback);
}
});
})
}
function orPluginOpServiceOp(a,b,c,d,a,v,request_callback){
var request_path = "/plugins/run";
if (request_callback == 'yes'){
request_path = "/plugins/callback";
}
var e = layer.msg(msgTpl('正在{1}{2}{3}服务,请稍候...',[d,a,v]), {icon: 16,time: 0});
$.post(request_path, c, function(g) {
layer.close(e);
var f = g.data == 'ok' ? msgTpl('{1}{2}服务已{3}',[a,v,d]) : msgTpl('{1}{2}服务{3}失败!',[a,v,d]);
layer.msg(f, {icon: g.data == 'ok' ? 1 : 2});
if( b != "reload" && g.data == 'ok' ) {
if ( b == 'start' ) {
orPluginSetService(a, true, v);
} else if ( b == 'stop' ){
orPluginSetService(a, false, v);
}
}
if( g.status && g.data != 'ok' ) {
layer.msg(g.data, {icon: 2,time: 10000,shade: 0.3});
}
},'json').error(function() {
layer.close(e);
layer.msg('操作异常!', {icon: 2});
});
}
// 定时器变量
var httpdStatusTimer = null;
//查看Apache负载状态
function getHttpdStatus() {
$.post('/plugins/run', {name:'apache', func:'run_info'}, function(data) {
try {
var rdata = $.parseJSON(data.data);
console.log(rdata);
if ('status' in rdata && !rdata.status){
showMsg(rdata.msg, function(){}, null,3000);
return;
}
var con = "\
| 服务器版本(ServerVersion) | " + (rdata.ServerVersion || '-') + " |
\
| 服务器MPM(ServerMPM) | " + (rdata.ServerMPM || '-') + " |
\
| 服务器构建时间(Server Built) | " + (rdata['Server Built'] || '-') + " |
\
| 当前时间(CurrentTime) | " + (rdata.CurrentTime || '-') + " |
\
| 重启时间(RestartTime) | " + (rdata.RestartTime || '-') + " |
\
| 服务器运行时间(ServerUptime) | " + (rdata.ServerUptime || '-') + " |
\
| 服务器运行秒数(ServerUptimeSeconds) | " + (rdata.ServerUptimeSeconds || '-') + " |
\
| 1分钟负载(Load1) | " + (rdata.Load1 || '-') + " |
\
| 5分钟负载(Load5) | " + (rdata.Load5 || '-') + " |
\
| 15分钟负载(Load15) | " + (rdata.Load15 || '-') + " |
\
| 总访问次数(Total Accesses) | " + (rdata['Total Accesses'] || '-') + " |
\
| 总流量(Total kBytes) | " + (rdata['Total kBytes'] || '-') + " KB |
\
| 总请求时间(Total Duration) | " + (rdata['Total Duration'] || '-') + " |
\
| CPU用户时间(CPUUser) | " + (rdata.CPUUser || '-') + " |
\
| CPU系统时间(CPUSystem) | " + (rdata.CPUSystem || '-') + " |
\
| CPU负载(CPULoad) | " + (rdata.CPULoad || '-') + " |
\
| 每秒请求数(ReqPerSec) | " + (rdata.ReqPerSec || '-') + " |
\
| 每秒流量(BytesPerSec) | " + (rdata.BytesPerSec || '-') + " |
\
| 每请求流量(BytesPerReq) | " + (rdata.BytesPerReq || '-') + " |
\
| 每请求时间(DurationPerReq) | " + (rdata.DurationPerReq || '-') + " |
\
| 活动工作进程(BusyWorkers) | " + (rdata.BusyWorkers || '-') + " |
\
| 优雅关闭进程(GracefulWorkers) | " + (rdata.GracefulWorkers || '-') + " |
\
| 空闲工作进程(IdleWorkers) | " + (rdata.IdleWorkers || '-') + " |
\
| 进程数(Processes) | " + (rdata.Processes || '-') + " |
\
| 总连接数(ConnsTotal) | " + (rdata.ConnsTotal || '-') + " |
\
";
$(".soft-man-con").html(con);
}catch(err){
showMsg(data.data, function(){}, null,3000);
}
},'json');
}
// 启动自动刷新
function startHttpdStatusAutoRefresh() {
// 先清除现有的定时器
if (httpdStatusTimer) {
clearInterval(httpdStatusTimer);
}
// 立即执行一次
getHttpdStatus();
// 设置定时器,每5秒刷新一次
httpdStatusTimer = setInterval(getHttpdStatus, 5000);
}
// 停止自动刷新
function stopHttpdStatusAutoRefresh() {
if (httpdStatusTimer) {
clearInterval(httpdStatusTimer);
httpdStatusTimer = null;
}
}
function setOpCfg(){
httpPost('get_cfg', {}, function(data){
var rdata = $.parseJSON(data.data);
var rdata = rdata.data;
// console.log(rdata);
var mlist = '';
for (var i = 0; i < rdata.length; i++) {
var w = '70'
var ibody = '';
switch (rdata[i].type) {
case 0:
var selected_1 = (rdata[i].value == 1) ? 'selected' : '';
var selected_0 = (rdata[i].value == 0) ? 'selected' : '';
ibody = '';
break;
case 1:
var selected_1 = (rdata[i].value == 'on') ? 'selected' : '';
var selected_0 = (rdata[i].value == 'off') ? 'selected' : '';
ibody = '';
break;
}
mlist += '' + rdata[i].name + '' + ibody + ""+rdata[i].unit+"" +', ' + rdata[i].ps + '
';
}
var con = '\
' + mlist + '\
\
\
\
\
'
$(".soft-man-con").html(con);
});
}
function submitConf() {
var data = {};
// 收集所有配置参数
$("input[name]").each(function() {
data[$(this).attr('name')] = $(this).val();
});
$("select[name]").each(function() {
data[$(this).attr('name')] = $(this).val() || 'on';
});
// console.log(data);
httpPost('set_cfg', data, function(rdata){
var rdata = $.parseJSON(rdata.data);
// console.log(rdata);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
});
}
function otherFunc(){
var con = '\
\
\
';
$(".soft-man-con").html(con);
}
function cronAddCheck(){
httpPost('cron_add_check', {}, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
});
}
function cronDelCheck(){
httpPost('cron_del_check', {}, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
});
}