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

@ -93,19 +93,20 @@ function closeLogs(id){
$.post('/crontab/del_logs',data,function(rdata){
layer.closeAll();
layer.msg(rdata.msg,{icon:rdata.status?1:2});
});
},'json');
}
//删除
function planDel(id,name){
safeMessage(lan.get('del',[name]),lan.crontab.del_task,function(){
layer.msg('正在处理,请稍候...',{icon:16,time:0,shade: [0.3, '#000']});
safeMessage(lan.get('del',[name]),'您确定要删除该任务吗?',function(){
var load = layer.msg('正在处理,请稍候...',{icon:16,time:0,shade: [0.3, '#000']});
var data='id='+id;
$.post('/crontab/del',data,function(rdata){
layer.closeAll();
layer.msg(rdata.msg,{icon:rdata.status?1:2,time:2000});
getCronData();
layer.close(load);
showMsg(rdata.msg, function(){
getCronData();
},{icon:rdata.status?1:2,time:2000});
},'json');
});
}
@ -174,7 +175,7 @@ function planAdd(){
var name = $(".planname input[name='name']").val();
if(name == ''){
$(".planname input[name='name']").focus();
layer.msg(lan.crontab.add_task_empty,{icon:2});
layer.msg('任务名称不能为空!',{icon:2});
return;
}
$("#set-Config input[name='name']").val(name);
@ -198,12 +199,11 @@ function planAdd(){
case 'month':
is1=31;
break;
}
if(where1 > is1 || where1 < is2){
$("#ptime input[name='where1']").focus();
layer.msg(lan.public.input_err,{icon:2});
layer.msg('表单不合法,请重新输入!',{icon:2});
return;
}
@ -212,22 +212,21 @@ function planAdd(){
var hour = $("#ptime input[name='hour']").val();
if(hour > 23 || hour < 0){
$("#ptime input[name='hour']").focus();
layer.msg(lan.crontab.input_hour_err,{icon:2});
layer.msg('小时值不合法!',{icon:2});
return;
}
$("#set-Config input[name='hour']").val(hour);
var minute = $("#ptime input[name='minute']").val();
if(minute > 59 || minute < 0){
$("#ptime input[name='minute']").focus();
layer.msg(lan.crontab.input_minute_err,{icon:2});
layer.msg('分钟值不合法!',{icon:2});
return;
}
$("#set-Config input[name='minute']").val(minute);
var save = $("#save").val();
if(save < 0){
layer.msg(lan.crontab.input_number_err,{icon:2});
layer.msg('不能有负数!',{icon:2});
return;
}
@ -467,19 +466,19 @@ function toBackup(type){
'+sOpt+'\
</ul>\
</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">\
<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>\
<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 +'\
</ul>\
</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 class="name">'+lan.crontab.save_num+'</span>\
<span class="name"></span>\
</div>';
$("#implement").html(sBody);
getselectname();

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

Loading…
Cancel
Save