pull/109/head
Mr Chen 6 years ago
parent a287cb90ec
commit c9a2981511
  1. 47
      class/core/crontab_api.py
  2. 35
      route/static/app/crontab.js
  3. 5
      route/static/app/public.js

@ -148,16 +148,16 @@ class crontab_api:
def addApi(self): def addApi(self):
iname = request.form.get('name', '') iname = request.form.get('name', '')
stype = request.form.get('type', '') field_type = request.form.get('type', '')
week = request.form.get('week', '') week = request.form.get('week', '')
where1 = request.form.get('where1', '') where1 = request.form.get('where1', '')
hour = request.form.get('hour', '') hour = request.form.get('hour', '')
minute = request.form.get('minute', '') minute = request.form.get('minute', '')
save = request.form.get('save', '') save = request.form.get('save', '')
backupTo = request.form.get('backupTo', '') backup_to = request.form.get('backupTo', '')
sType = request.form.get('sType', '') stype = request.form.get('sType', '')
sName = request.form.get('sName', '') sname = request.form.get('sName', '')
sBody = request.form.get('sBody', '') sbody = request.form.get('sBody', '')
urladdress = request.form.get('urladdress', '') urladdress = request.form.get('urladdress', '')
if len(iname) < 1: if len(iname) < 1:
@ -165,26 +165,27 @@ class crontab_api:
params = { params = {
'name': iname, 'name': iname,
'type': stype, 'type': field_type,
'week': week, 'week': week,
'where1': where1, 'where1': where1,
'hour': hour, 'hour': hour,
'minute': minute, 'minute': minute,
'save': save, 'save': save,
'backupTo': backupTo, 'backup_to': backup_to,
'sType': sType, 'stype': stype,
'sName': sName, 'sname': sname,
'sBody': sBody, 'sbody': sbody,
'urladdress': urladdress, 'urladdress': urladdress,
} }
# print params # print params
cuonConfig, _params, name = self.getCrondCycle(params) cuonConfig, get, name = self.getCrondCycle(params)
cronPath = public.getServerDir() + '/cron' cronPath = public.getServerDir() + '/cron'
cronName = self.getShell(params) cronName = self.getShell(params)
# print cuonConfig, _params, name # print cuonConfig, _params, name
# print cronPath, cronName # print cronPath, cronName
# print stype
if type(cronName) == dict: if type(cronName) == dict:
return cronName return cronName
@ -197,8 +198,9 @@ class crontab_api:
return wRes return wRes
self.crondReload() self.crondReload()
addData = public.M('crontab').add(self.field, (iname, stype, where1, hour, minute, cronName, time.strftime( addData = public.M('crontab').add('name,type,where1,where_hour,where_minute,echo,addtime,status,save,backup_to,stype,sname,sbody,urladdress', (iname, field_type, where1, hour, minute, cronName, time.strftime(
'%Y-%m-%d %X', time.localtime()), 1, save, backupTo, sType, sName, sBody, urladdress)) '%Y-%m-%d %X', time.localtime()), 1, save, backup_to, stype, sname, sbody, urladdress))
if addData > 0: if addData > 0:
return public.returnJson(True, '添加成功') return public.returnJson(True, '添加成功')
return public.returnJson(False, '添加失败') return public.returnJson(False, '添加失败')
@ -206,27 +208,36 @@ class crontab_api:
def delApi(self): def delApi(self):
sid = request.form.get('id', '') sid = request.form.get('id', '')
try: try:
find = public.M('crontab').where("id=?", (sid,)).delete() find = public.M('crontab').where(
"id=?", (sid,)).field('name,echo').find()
if not self.removeForCrond(find['echo']): if not self.removeForCrond(find['echo']):
return public.returnJson(False, '无法写入文件,请检查是否开启了系统加固功能!') return public.returnJson(False, '无法写入文件,请检查是否开启了系统加固功能!')
cronPath = public.getServerDir() + '/cron' cronPath = public.getServerDir() + '/cron'
sfile = cronPath + '/' + find['echo'] sfile = cronPath + '/' + find['echo']
if os.path.exists(sfile): if os.path.exists(sfile):
os.remove(sfile) os.remove(sfile)
sfile = cronPath + '/' + find['echo'] + '.log' sfile = cronPath + '/' + find['echo'] + '.log'
if os.path.exists(sfile): if os.path.exists(sfile):
os.remove(sfile) os.remove(sfile)
public.M('crontab').where("id=?", (id,)).delete() public.M('crontab').where("id=?", (sid,)).delete()
public.writeLog('计划任务', public.getInfo( public.writeLog('计划任务', public.getInfo(
'删除计划任务[{1}]成功!', (find['name'],))) '删除计划任务[{1}]成功!', (find['name'],)))
return public.returnJson(True, '删除成功') return public.returnJson(True, '删除成功')
except Exception as e: except Exception as e:
return public.returnJson(False, '删除失败') return public.returnJson(False, '删除失败:' + str(e))
def delLogsApi(self): def delLogsApi(self):
return public.returnJson(True, '删除成功') sid = request.form.get('id', '')
try:
echo = public.M('crontab').where("id=?", (sid,)).getField('echo')
logFile = public.getServerDir() + '/cron/' + echo + '.log'
os.remove(logFile)
return public.returnJson(True, '任务日志已清空!')
except:
return public.returnJson(False, '任务日志清空失败!')
##### ----- start ----- ### ##### ----- start ----- ###
# 转换大写星期 # 转换大写星期
@ -346,7 +357,7 @@ class crontab_api:
shell = head + "curl -sS --connect-timeout 10 -m 60 '" + \ shell = head + "curl -sS --connect-timeout 10 -m 60 '" + \
param['urladdress'] + "'" param['urladdress'] + "'"
else: else:
shell = head + param['sBody'].replace("\r\n", "\n") shell = head + param['sbody'].replace("\r\n", "\n")
shell += ''' shell += '''
echo "----------------------------------------------------------------------------" echo "----------------------------------------------------------------------------"

@ -93,19 +93,20 @@ function closeLogs(id){
$.post('/crontab/del_logs',data,function(rdata){ $.post('/crontab/del_logs',data,function(rdata){
layer.closeAll(); layer.closeAll();
layer.msg(rdata.msg,{icon:rdata.status?1:2}); layer.msg(rdata.msg,{icon:rdata.status?1:2});
}); },'json');
} }
//删除 //删除
function planDel(id,name){ function planDel(id,name){
safeMessage(lan.get('del',[name]),lan.crontab.del_task,function(){ safeMessage(lan.get('del',[name]),'您确定要删除该任务吗?',function(){
layer.msg('正在处理,请稍候...',{icon:16,time:0,shade: [0.3, '#000']}); var load = layer.msg('正在处理,请稍候...',{icon:16,time:0,shade: [0.3, '#000']});
var data='id='+id; var data='id='+id;
$.post('/crontab/del',data,function(rdata){ $.post('/crontab/del',data,function(rdata){
layer.closeAll(); layer.close(load);
layer.msg(rdata.msg,{icon:rdata.status?1:2,time:2000}); showMsg(rdata.msg, function(){
getCronData(); getCronData();
},{icon:rdata.status?1:2,time:2000});
},'json'); },'json');
}); });
} }
@ -174,7 +175,7 @@ function planAdd(){
var name = $(".planname input[name='name']").val(); var name = $(".planname input[name='name']").val();
if(name == ''){ if(name == ''){
$(".planname input[name='name']").focus(); $(".planname input[name='name']").focus();
layer.msg(lan.crontab.add_task_empty,{icon:2}); layer.msg('任务名称不能为空!',{icon:2});
return; return;
} }
$("#set-Config input[name='name']").val(name); $("#set-Config input[name='name']").val(name);
@ -198,12 +199,11 @@ function planAdd(){
case 'month': case 'month':
is1=31; is1=31;
break; break;
} }
if(where1 > is1 || where1 < is2){ if(where1 > is1 || where1 < is2){
$("#ptime input[name='where1']").focus(); $("#ptime input[name='where1']").focus();
layer.msg(lan.public.input_err,{icon:2}); layer.msg('表单不合法,请重新输入!',{icon:2});
return; return;
} }
@ -212,22 +212,21 @@ function planAdd(){
var hour = $("#ptime input[name='hour']").val(); var hour = $("#ptime input[name='hour']").val();
if(hour > 23 || hour < 0){ if(hour > 23 || hour < 0){
$("#ptime input[name='hour']").focus(); $("#ptime input[name='hour']").focus();
layer.msg(lan.crontab.input_hour_err,{icon:2}); layer.msg('小时值不合法!',{icon:2});
return; return;
} }
$("#set-Config input[name='hour']").val(hour); $("#set-Config input[name='hour']").val(hour);
var minute = $("#ptime input[name='minute']").val(); var minute = $("#ptime input[name='minute']").val();
if(minute > 59 || minute < 0){ if(minute > 59 || minute < 0){
$("#ptime input[name='minute']").focus(); $("#ptime input[name='minute']").focus();
layer.msg(lan.crontab.input_minute_err,{icon:2}); layer.msg('分钟值不合法!',{icon:2});
return; return;
} }
$("#set-Config input[name='minute']").val(minute); $("#set-Config input[name='minute']").val(minute);
var save = $("#save").val(); var save = $("#save").val();
if(save < 0){ if(save < 0){
layer.msg(lan.crontab.input_number_err,{icon:2}); layer.msg('不能有负数!',{icon:2});
return; return;
} }
@ -467,19 +466,19 @@ function toBackup(type){
'+sOpt+'\ '+sOpt+'\
</ul>\ </ul>\
</div>\ </div>\
<div class="textname pull-left mr20">'+lan.crontab.backup_to+'</div>\ <div class="textname pull-left mr20">备份到</div>\
<div class="dropdown planBackupTo pull-left mr20">\ <div class="dropdown planBackupTo pull-left mr20">\
<button class="btn btn-default dropdown-toggle" type="button" id="excode" data-toggle="dropdown" style="width:auto;">\ <button class="btn btn-default dropdown-toggle" type="button" id="excode" data-toggle="dropdown" style="width:auto;">\
<b val="localhost">'+lan.crontab.disk+'</b> <span class="caret"></span>\ <b val="localhost">服务器磁盘</b> <span class="caret"></span>\
</button>\ </button>\
<ul class="dropdown-menu" role="menu" aria-labelledby="excode">\ <ul class="dropdown-menu" role="menu" aria-labelledby="excode">\
<li><a role="menuitem" tabindex="-1" href="javascript:;" value="localhost">'+lan.crontab.disk+'</a></li>\ <li><a role="menuitem" tabindex="-1" href="javascript:;" value="localhost">服务器磁盘</a></li>\
'+ orderOpt +'\ '+ orderOpt +'\
</ul>\ </ul>\
</div>\ </div>\
<div class="textname pull-left mr20">'+lan.crontab.save_new+'</div><div class="plan_hms pull-left mr20 bt-input-text">\ <div class="textname pull-left mr20">保留最新</div><div class="plan_hms pull-left mr20 bt-input-text">\
<span><input type="number" name="save" id="save" value="3" maxlength="4" max="100" min="1"></span>\ <span><input type="number" name="save" id="save" value="3" maxlength="4" max="100" min="1"></span>\
<span class="name">'+lan.crontab.save_num+'</span>\ <span class="name"></span>\
</div>'; </div>';
$("#implement").html(sBody); $("#implement").html(sBody);
getselectname(); getselectname();

@ -22,9 +22,6 @@ function toSizeM(byteLen) {
return a || 0; return a || 0;
} }
function randomStrPwd(b) { function randomStrPwd(b) {
b = b || 32; b = b || 32;
var c = "AaBbCcDdEeFfGHhiJjKkLMmNnPpRSrTsWtXwYxZyz2345678"; var c = "AaBbCcDdEeFfGHhiJjKkLMmNnPpRSrTsWtXwYxZyz2345678";
@ -349,8 +346,6 @@ function aotuHeight() {
$(".main-content").css("min-height", a) $(".main-content").css("min-height", a)
} }
function showMsg(msg, callback ,icon, time){ function showMsg(msg, callback ,icon, time){
if (typeof time == 'undefined'){ if (typeof time == 'undefined'){

Loading…
Cancel
Save