Skip to content

Commit 06abfd9

Browse files
committed
update
1 parent 3ae8f02 commit 06abfd9

File tree

6 files changed

+731
-141
lines changed

6 files changed

+731
-141
lines changed

class/core/mw.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -602,7 +602,7 @@ def writeLog(stype, msg, args=()):
602602

603603

604604
def writeFileLog(msg, path=None, limit_size=50 * 1024 * 1024, save_limit=3):
605-
log_file = getServerDir() + '/mdserver-web/logs/debug.log'
605+
log_file = getPanelDir() + '/logs/debug.log'
606606
if path != None:
607607
log_file = path
608608

@@ -632,14 +632,15 @@ def writeFileLog(msg, path=None, limit_size=50 * 1024 * 1024, save_limit=3):
632632

633633
def writeDbLog(stype, msg, args=(), uid=1):
634634
try:
635-
import time
636-
import db
637-
import json
638-
sql = db.Sql()
639-
mdate = time.strftime('%Y-%m-%d %X', time.localtime())
640-
wmsg = getInfo(msg, args)
641-
data = (stype, wmsg, uid, mdate)
642-
result = sql.table('logs').add('type,log,uid,addtime', data)
635+
add_time = formatDate()
636+
format_msg = getInfo(msg, args)
637+
add_data = {
638+
'type':stype,
639+
'msg':format_msg,
640+
'uid':uid,
641+
'add_time':add_time,
642+
}
643+
result = M('logs').insert(add_data)
643644
return True
644645
except Exception as e:
645646
return False

panel_task.py

Lines changed: 33 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -27,47 +27,19 @@
2727
from admin import app
2828
from admin import model
2929

30+
import thisdb
3031
import core.mw as mw
3132
import core.db as db
3233

33-
34-
global pre, timeoutCount, logPath, isTask, oldEdate, isCheck
35-
pre = 0
36-
timeoutCount = 0
37-
isCheck = 0
38-
oldEdate = None
39-
4034
g_log_file = mw.getPanelTaskLog()
4135
isTask = mw.getMWLogs() + '/panelTask.pl'
4236

4337
if not os.path.exists(g_log_file):
4438
os.system("touch " + g_log_file)
4539

4640
def execShell(cmdstring, cwd=None, timeout=None, shell=True):
47-
try:
48-
global g_log_file
49-
import shlex
50-
import datetime
51-
import subprocess
52-
53-
if timeout:
54-
end_time = datetime.datetime.now() + datetime.timedelta(seconds=timeout)
55-
56-
cmd = cmdstring + ' > ' + g_log_file + ' 2>&1'
57-
sub = subprocess.Popen(cmd, cwd=cwd, stdin=subprocess.PIPE, shell=shell, bufsize=4096)
58-
while sub.poll() is None:
59-
time.sleep(0.1)
60-
61-
data = sub.communicate()
62-
# python3 fix 返回byte数据
63-
if isinstance(data[0], bytes):
64-
t1 = str(data[0], encoding='utf-8')
65-
66-
if isinstance(data[1], bytes):
67-
t2 = str(data[1], encoding='utf-8')
68-
return (t1, t2)
69-
except Exception as e:
70-
return (None, None)
41+
cmd = cmdstring + ' > ' + g_log_file + ' 2>&1'
42+
return mw.execShell(cmd)
7143

7244
def service_cmd(method):
7345
cmd = '/etc/init.d/mw'
@@ -76,37 +48,12 @@ def service_cmd(method):
7648
return
7749

7850
cmd = mw.getPanelDir() + '/scripts/init.d/mw'
79-
print(cmd)
8051
if os.path.exists(cmd):
8152
print(cmd + ' ' + method)
8253
data = execShell(cmd + ' ' + method)
8354
print(data)
8455
return
8556

86-
87-
def openresty_cmd(method = 'reload'):
88-
# 检查是否安装
89-
odir = mw.getServerDir() + '/openresty'
90-
if not os.path.exists(odir):
91-
return False
92-
93-
# systemd
94-
systemd = mw.systemdCfgDir()+'/openresty.service'
95-
if os.path.exists(systemd):
96-
execShell('systemctl ' + method + ' openresty')
97-
return True
98-
99-
sys_initd = '/etc/init.d/openresty'
100-
if os.path.exists(sys_initd):
101-
os.system(sys_initd + ' ' + method)
102-
return True
103-
104-
install_initd = mw.getServerDir()+'/openresty/init.d/openresty'
105-
if os.path.exists(install_initd):
106-
os.system(install_initd + ' ' + method)
107-
return True
108-
return False
109-
11057
def mw_async(f):
11158
def wrapper(*args, **kwargs):
11259
thr = threading.Thread(target=f, args=args, kwargs=kwargs)
@@ -225,8 +172,8 @@ def siteEdate():
225172

226173

227174
def systemTask():
228-
from utils.system import monitor
229175
# 系统监控任务
176+
from utils.system import monitor
230177
try:
231178
while True:
232179
monitor.instance().run()
@@ -240,10 +187,11 @@ def systemTask():
240187
# 502错误检查线程
241188
def check502Task():
242189
try:
190+
check_file = mw.getPanelDir() + '/data/502Task.pl'
243191
while True:
244-
if os.path.exists(mw.getPanelDir() + '/data/502Task.pl'):
192+
if os.path.exists(check_file):
245193
check502()
246-
time.sleep(30)
194+
time.sleep(10)
247195
except:
248196
time.sleep(30)
249197
check502Task()
@@ -257,22 +205,23 @@ def check502():
257205
'82', '83', '84'
258206
]
259207
for ver in verlist:
260-
sdir = mw.getServerDir()
261-
php_path = sdir + '/php/' + ver + '/sbin/php-fpm'
208+
server_dir = mw.getServerDir()
209+
php_path = server_dir + '/php/' + ver + '/sbin/php-fpm'
262210
if not os.path.exists(php_path):
263211
continue
264212
if checkPHPVersion(ver):
265213
continue
266214
if startPHPVersion(ver):
267215
print('检测到PHP-' + ver + '处理异常,已自动修复!')
268216
mw.writeLog('PHP守护程序', '检测到PHP-' + ver + '处理异常,已自动修复!')
217+
269218
except Exception as e:
270-
print(str(e))
219+
mw.writeLog('PHP守护程序', '自动修复异常:'+str(e))
271220

272221

273222
# 处理指定PHP版本
274223
def startPHPVersion(version):
275-
sdir = mw.getServerDir()
224+
server_dir = mw.getServerDir()
276225
try:
277226
# system
278227
phpService = mw.systemdCfgDir() + '/php' + version + '.service'
@@ -282,8 +231,8 @@ def startPHPVersion(version):
282231
return True
283232

284233
# initd
285-
fpm = sdir + '/php/init.d/php' + version
286-
php_path = sdir + '/php/' + version + '/sbin/php-fpm'
234+
fpm = server_dir + '/php/init.d/php' + version
235+
php_path = server_dir + '/php/' + version + '/sbin/php-fpm'
287236
if not os.path.exists(php_path):
288237
if os.path.exists(fpm):
289238
os.remove(fpm)
@@ -296,7 +245,6 @@ def startPHPVersion(version):
296245
os.system(fpm + ' reload')
297246
if checkPHPVersion(version):
298247
return True
299-
300248
# 尝试重启服务
301249
cgi = '/tmp/php-cgi-' + version + '.sock'
302250
pid = sdir + '/php/' + version + '/var/run/php-fpm.pid'
@@ -316,47 +264,18 @@ def startPHPVersion(version):
316264
if os.path.exists(cgi):
317265
return True
318266
except Exception as e:
319-
print(str(e))
267+
mw.writeLog('PHP守护程序', '自动修复异常:'+str(e))
320268
return True
321269

322270

323-
def getFpmConfFile(version):
324-
return mw.getServerDir() + '/php/' + version + '/etc/php-fpm.d/www.conf'
325-
326-
327-
def getFpmAddress(version):
328-
fpm_address = '/tmp/php-cgi-{}.sock'.format(version)
329-
php_fpm_file = getFpmConfFile(version)
330-
try:
331-
content = readFile(php_fpm_file)
332-
tmp = re.findall(r"listen\s*=\s*(.+)", content)
333-
if not tmp:
334-
return fpm_address
335-
if tmp[0].find('sock') != -1:
336-
return fpm_address
337-
if tmp[0].find(':') != -1:
338-
listen_tmp = tmp[0].split(':')
339-
if bind:
340-
fpm_address = (listen_tmp[0], int(listen_tmp[1]))
341-
else:
342-
fpm_address = ('127.0.0.1', int(listen_tmp[1]))
343-
else:
344-
fpm_address = ('127.0.0.1', int(tmp[0]))
345-
return fpm_address
346-
except:
347-
return fpm_address
348-
349-
350271
def checkPHPVersion(version):
351272
# 检查指定PHP版本
352273
try:
353-
sock = getFpmAddress(version)
274+
sock = mw.getFpmAddress(version)
354275
data = mw.requestFcgiPHP(sock, '/phpfpm_status_' + version + '?json')
355276
result = str(data, encoding='utf-8')
356277
except Exception as e:
357278
result = 'Bad Gateway'
358-
359-
# print(version,result)
360279
# 检查openresty
361280
if result.find('Bad Gateway') != -1:
362281
return False
@@ -366,24 +285,9 @@ def checkPHPVersion(version):
366285
# 检查Web服务是否启动
367286
if result.find('Connection refused') != -1:
368287
return False
369-
# global isTask
370-
# if os.path.exists(isTask):
371-
# isStatus = mw.readFile(isTask)
372-
# if isStatus == 'True':
373-
# return True
374-
375-
# # systemd
376-
# systemd = mw.systemdCfgDir() + '/openresty.service'
377-
# if os.path.exists(systemd):
378-
# execShell('systemctl reload openresty')
379-
# return True
380-
# # initd
381-
# initd = '/etc/init.d/openresty'
382-
# if os.path.exists(initd):
383-
# os.system(initd + ' reload')
384288
return True
385289

386-
# --------------------------------------PHP监控 end--------------------------------------------- #
290+
# -------------------------------------- PHP监控 end --------------------------------------------- #
387291

388292

389293
# --------------------------------------OpenResty Auto Restart Start --------------------------------------------- #
@@ -396,11 +300,10 @@ def openrestyAutoRestart():
396300
if not os.path.exists(odir):
397301
time.sleep(86400)
398302
continue
399-
400-
openresty_cmd('reload')
303+
mw.opWeb('reload')
401304
time.sleep(86400)
402305
except Exception as e:
403-
print(str(e))
306+
mw.writeLog('OpenResty检测', '自动修复异常:'+str(e))
404307
time.sleep(86400)
405308

406309
# --------------------------------------OpenResty Auto Restart End --------------------------------------------- #
@@ -409,11 +312,11 @@ def openrestyAutoRestart():
409312

410313

411314
def openrestyRestartAtOnce():
412-
restart_nginx_tip = 'data/restart_nginx.pl'
315+
restart_nginx_tip = mw.getPanelDir()+'/data/restart_nginx.pl'
413316
while True:
414317
if os.path.exists(restart_nginx_tip):
415318
os.remove(restart_nginx_tip)
416-
openresty_cmd('reload')
319+
mw.opWeb('reload')
417320
time.sleep(1)
418321
# ----------------------------------- OpenResty Restart At Once End ------------------------------------------ #
419322

@@ -424,7 +327,7 @@ def restartPanelService():
424327
while True:
425328
if os.path.exists(restartTip):
426329
os.remove(restartTip)
427-
service_cmd('restart_panel')
330+
mw.panelCmd('restart_panel')
428331
time.sleep(1)
429332
# --------------------------------------Panel Restart End --------------------------------------------- #
430333

@@ -443,20 +346,20 @@ def run():
443346
sysTask.start()
444347

445348
# # PHP 502错误检查线程
446-
# php502 = threading.Thread(target=check502Task)
447-
# php502 = setDaemon(php502)
448-
# php502.start()
349+
php502 = threading.Thread(target=check502Task)
350+
php502 = setDaemon(php502)
351+
php502.start()
449352

450-
# # OpenResty Restart At Once Start
451-
# oraos = threading.Thread(target=openrestyRestartAtOnce)
452-
# oraos = setDaemon(oraos)
453-
# oraos.start()
353+
# OpenResty Restart At Once Start
354+
oraos = threading.Thread(target=openrestyRestartAtOnce)
355+
oraos = setDaemon(oraos)
356+
oraos.start()
454357

455358

456-
# # OpenResty Auto Restart Start
457-
# oar = threading.Thread(target=openrestyAutoRestart)
458-
# oar = setDaemon(oar)
459-
# oar.start()
359+
# OpenResty Auto Restart Start
360+
oar = threading.Thread(target=openrestyAutoRestart)
361+
oar = setDaemon(oar)
362+
oar.start()
460363

461364

462365
# Panel Restart Start

0 commit comments

Comments
 (0)