mdserver-web/plugins/clean/index.py

305 lines
7.4 KiB
Python
Raw Normal View History

2021-11-23 03:22:08 -05:00
# coding:utf-8
import sys
import io
import os
import time
2024-11-23 16:48:35 -05:00
web_dir = os.getcwd() + "/web"
if os.path.exists(web_dir):
sys.path.append(web_dir)
os.chdir(web_dir)
import core.mw as mw
2021-11-23 03:22:08 -05:00
app_debug = False
if mw.isAppleSystem():
app_debug = True
def getPluginName():
return 'clean'
def getPluginDir():
return mw.getPluginDir() + '/' + getPluginName()
def getServerDir():
return mw.getServerDir() + '/' + getPluginName()
def getInitDFile():
if app_debug:
return '/tmp/' + getPluginName()
return '/etc/init.d/' + getPluginName()
def getConf():
path = getServerDir() + "/clean.conf"
return path
def getArgs():
args = sys.argv[2:]
tmp = {}
args_len = len(args)
if args_len == 1:
t = args[0].strip('{').strip('}')
t = t.split(':')
tmp[t[0]] = t[1]
elif args_len > 1:
for i in range(len(args)):
t = args[i].split(':')
tmp[t[0]] = t[1]
return tmp
2022-10-02 03:05:13 -04:00
def getLockFile():
return getServerDir() + "/installed_lock.pl"
def runLog():
return getServerDir() + "/clean.log"
2021-11-23 03:22:08 -05:00
def status():
2022-10-02 03:05:13 -04:00
initConf()
if os.path.exists(getLockFile()):
2021-11-23 03:22:08 -05:00
return "start"
return 'stop'
2022-10-02 03:05:13 -04:00
def initConf():
conf = getConf()
if not os.path.exists(conf):
content = ""
clog = [
"/var/log/cron-*",
"/var/log/maillog-*",
"/var/log/secure-*",
"/var/log/spooler-*",
"/var/log/yum.log-*",
"/var/log/messages-*",
"/var/log/btmp-*",
2024-06-06 06:56:09 -04:00
"/var/log/auth.*",
"/var/log/messages.*",
"/var/log/debug.*",
"/var/log/syslog.*",
2025-07-17 08:12:16 -04:00
"/var/log/syslog",
"/var/log/mail.*",
2025-08-20 00:56:50 -04:00
"/var/log/mail.err.*",
"/var/log/mail.info.*",
"/var/log/mail.warn.*",
2024-06-06 07:29:57 -04:00
"/var/log/btmp.*",
2024-06-26 12:38:20 -04:00
"/var/log/sa/sa*",
2024-06-28 09:09:03 -04:00
"/var/log/sysstat/sa*",
2024-06-28 10:37:20 -04:00
"/var/log/atop/atop*",
2024-06-26 12:41:39 -04:00
"/var/log/anaconda/*.log",
2024-06-06 07:29:57 -04:00
2024-06-06 07:25:08 -04:00
"/var/log/dpkg.log.*",
"/var/log/alternatives.log.*",
"/var/log/user.log.*",
"/var/log/kern.log.*",
"/var/log/daemon.log.*",
2024-06-06 07:29:57 -04:00
2024-06-06 07:32:55 -04:00
"/var/log/*.gz",
"/var/log/*.xz",
2024-06-06 07:34:26 -04:00
"/var/log/*.log.*",
2024-06-06 07:32:55 -04:00
2022-10-02 03:05:13 -04:00
"/var/log/audit/audit.log.*",
2024-06-26 12:41:39 -04:00
"/var/log/hawkey.log-*",
2024-06-06 07:26:20 -04:00
"/var/log/apt/*.gz",
2024-06-06 07:29:57 -04:00
"/var/log/apt/*.xz",
2022-10-02 03:05:13 -04:00
"/var/log/rhsm/rhsm.log-*",
"/var/log/rhsm/rhsmcertd.log-*",
2024-06-06 07:31:06 -04:00
"/var/log/exim4/*.gz",
2024-06-06 07:29:57 -04:00
"/var/log/journal/*",
2024-06-06 07:31:06 -04:00
"/var/spool/clientmqueue/*",
2022-10-02 03:05:13 -04:00
"/tmp/yum_save_*",
"/tmp/tmp.*",
2024-10-11 16:36:00 -04:00
2024-10-11 16:40:54 -04:00
"/www/server/dztasks/logs/dztasks.*.log",
"/www/server/dztasks/logs/dztasks_*",
2022-10-02 03:05:13 -04:00
]
for i in clog:
content += i + "\n"
# 常用日志
clogcom = [
"/var/log/messages",
"/var/log/btmp",
"/var/log/wtmp",
"/var/log/secure",
"/var/log/lastlog",
2025-03-08 01:47:35 -05:00
"/var/log/syslog",
2022-10-02 03:05:13 -04:00
"/var/log/cron",
2024-07-15 14:09:30 -04:00
"/www/wwwlogs",
2024-05-07 13:20:29 -04:00
"/www/server/rsyncd",
2024-09-14 13:03:32 -04:00
"/www/server/acme_pandominassl_apply",
2024-05-07 13:19:53 -04:00
"/www/server/sphinx/index",
"/www/server/mongodb/logs",
2024-05-07 13:25:58 -04:00
"/www/server/php/53/var/log",
"/www/server/php/54/var/log",
"/www/server/php/55/var/log",
"/www/server/php/56/var/log",
"/www/server/php/70/var/log",
"/www/server/php/71/var/log",
"/www/server/php/72/var/log",
"/www/server/php/73/var/log",
"/www/server/php/74/var/log",
"/www/server/php/80/var/log",
"/www/server/php/81/var/log",
"/www/server/php/82/var/log",
"/www/server/php/83/var/log",
"/www/server/php/84/var/log",
2025-08-20 00:56:50 -04:00
"/www/server/php/85/var/log",
2024-05-12 03:59:19 -04:00
"/www/server/openresty/nginx/logs",
2024-05-07 13:26:43 -04:00
"/www/server/phpmyadmin",
2026-04-11 09:45:10 -04:00
"/www/server/apache/httpd/logs",
2024-05-07 13:27:23 -04:00
"/www/server/redis/data",
2024-10-11 16:22:38 -04:00
"/www/server/alist/data/log",
"/www/server/dztasks/logs",
2026-04-04 11:41:05 -04:00
"/www/server/rsyncd/lsyncd.log",
2026-05-07 05:06:56 -04:00
"/www/server/mdserver-web/logs",
2022-10-02 03:05:13 -04:00
]
for i in clogcom:
if os.path.exists(i):
content += i + "\n"
2026-04-04 11:41:58 -04:00
content += "/www/server/cron\n"
2022-10-02 03:05:13 -04:00
# 清理日志
rootDir = "/var/log"
l = os.listdir(rootDir)
for x in range(len(l)):
abspath = rootDir + "/" + l[x]
content += abspath + "\n"
mw.writeFile(conf, content)
2021-11-23 03:22:08 -05:00
def start():
2022-10-02 03:05:13 -04:00
initConf()
lock_file = getLockFile()
if not os.path.exists(lock_file):
mw.writeFile(lock_file, "")
import tool_task
tool_task.createBgTask()
2021-11-23 03:22:08 -05:00
return 'ok'
2022-10-02 03:05:13 -04:00
2021-11-23 03:22:08 -05:00
return 'fail'
def stop():
2022-10-02 03:05:13 -04:00
initConf()
lock_file = getLockFile()
if os.path.exists(lock_file):
os.remove(lock_file)
import tool_task
tool_task.removeBgTask()
2021-11-23 03:22:08 -05:00
return 'ok'
2022-10-02 03:05:13 -04:00
2021-11-23 03:22:08 -05:00
return 'fail'
def reload():
2022-10-02 03:05:13 -04:00
return 'ok'
2021-11-23 03:22:08 -05:00
2021-11-23 03:41:24 -05:00
def get_filePath_fileName_fileExt(filename):
(filepath, tempfilename) = os.path.split(filename)
(shotname, extension) = os.path.splitext(tempfilename)
return filepath, shotname, extension
2021-11-23 03:49:03 -05:00
def cleanFileLog(path):
2021-11-23 04:05:06 -05:00
filepath, shotname, extension = get_filePath_fileName_fileExt(path)
2021-11-23 03:49:03 -05:00
if extension == ".log":
2021-11-23 04:11:49 -05:00
cmd = "echo \"\" > " + path
2022-10-02 03:05:13 -04:00
tmp = mw.execShell(cmd)
if tmp[1] != "":
cmd += " | error:" + tmp[1].strip()
2021-11-23 03:49:03 -05:00
print(cmd)
2021-12-05 06:08:41 -05:00
def cleanSelfFileLog(path):
filepath, shotname, extension = get_filePath_fileName_fileExt(path)
2022-10-02 03:05:13 -04:00
if extension == ".log":
cmd = "echo \"\" > " + path
tmp = mw.execShell(cmd)
if tmp[1] != "":
cmd += " | error:" + tmp[1].strip()
print(cmd)
2021-12-05 06:08:41 -05:00
2021-11-23 03:49:03 -05:00
def cleanDirLog(path):
l = os.listdir(path)
2021-11-23 03:51:21 -05:00
for x in range(len(l)):
abspath = path + "/" + l[x]
if os.path.isfile(abspath):
cleanFileLog(abspath)
if os.path.isdir(abspath):
cleanDirLog(abspath)
2021-11-23 03:49:03 -05:00
2024-06-06 07:18:44 -04:00
def cleanRun():
plugin_dir = getPluginDir()
log_file = getServerDir()+'/clean.log'
2025-02-02 12:41:52 -05:00
cmd = 'cd '+mw.getPanelDir()+' && python3 '+plugin_dir+'/index.py clean > '+log_file
2024-06-06 07:18:44 -04:00
os.system(cmd)
return mw.returnJson(True, '执行成功!')
2021-11-23 03:22:08 -05:00
def cleanLog():
2022-10-02 03:05:13 -04:00
conf = getConf()
clist = mw.readFile(conf).strip()
2021-12-05 05:54:11 -05:00
clist = clist.split("\n")
for x in clist:
abspath = x.strip()
2022-10-02 03:05:13 -04:00
if abspath.find('*') > 1:
cmd = 'rm -rf ' + abspath
print(cmd)
data = mw.execShell(cmd)
# print(data)
continue
2021-12-05 05:54:11 -05:00
if os.path.exists(abspath):
if os.path.isfile(abspath):
2021-12-05 06:08:41 -05:00
cleanSelfFileLog(abspath)
2022-10-02 03:05:13 -04:00
continue
2021-12-05 05:54:11 -05:00
if os.path.isdir(abspath):
cleanDirLog(abspath)
2022-10-02 03:05:13 -04:00
continue
2021-11-23 03:22:08 -05:00
2024-06-26 06:46:31 -04:00
2021-11-23 03:22:08 -05:00
if __name__ == "__main__":
func = sys.argv[1]
if func == 'status':
print(status())
elif func == 'start':
print(start())
elif func == 'stop':
print(stop())
elif func == 'restart':
print(restart())
elif func == 'reload':
print(reload())
elif func == 'conf':
print(getConf())
2022-10-02 03:05:13 -04:00
elif func == 'run_log':
print(runLog())
2021-11-23 03:22:08 -05:00
elif func == 'clean':
cleanLog()
2024-06-06 07:18:44 -04:00
elif func == 'clean_run':
print(cleanRun())
2021-11-23 03:22:08 -05:00
else:
print('error')