git clone https://github.com/xanszZZ/clear_tool
本工具是由python编写的windows、linux系统痕迹清理工具。支持清理windows web日志清理,包括IIS、apache、nginx中间件的日志文件清理,支持清理linux web日志清理,在使用本工具前需找到对应系统web日志目录
一些中间件默认web日志目录:
IIS:
%SystemDrive%\inetpub\logs\LogFiles
注:不同的 Win版本iis日志路径不一样,这里列出几个
C:\Windows\System32\LogFiles # win_s_2003
C:\inetpub\logs\LogFiles # win_s_2008r2
%SystemDrive%\inetpub\logs\LogFiles # win_s_2012r2
apache:
apache默认日志在安装目录下的logs目录中
nginx:
nginx默认日志在安装目录下的logs目录中。
参数
-s 选择w或l ,对应windows和linux系统
-u 选择想要清理的关键ip
-p 在IIS中间件中,对应目标日志文件的名字不同,选择对应的名字,在linux中选择要删除的日志文件
将工具放入对应目录下
python clear_tool.py -s w -u 127.0.0.1
目标主机没有python环境可直接使用打包好的exe文件(注:原项目没有Tomcat功能)
clear_tool.exe -s w -u 127.0.0.1
命令示例
Liunx日志清理:
python3 clear.py -s l -u 192.168.1.108 -p /path/to/linux/logfile
清理Windows(IIS)日志:
python3 clear.py -s w -u 192.168.1.108 -p C:\path\to\iis\logfile.log
清理Apache日志:
python3 clear.py -u 192.168.1.108 -p /path/to/apache/access.log
增加一个Tomcat日志清理
通过此修改,您现在可以使用参数-s t或–sys t来指定要清理 Tomcat 日志。参数-por–path将指定 Tomcat 日志目录的路径。
例如,要清理目录中特定IP地址的Tomcat日志/path/to/tomcat/logs,可以运行示例命令:
python3 clear.py -s t -u 192.168.1.108 -p /path/to/tomcat/logs
import argparse
import os
import textwrap
def main(sys, ip, path):
if sys == 'l':
os.system(f"sed -i '/{ip}/d' /var/log/{path}")
print(f"Linux {path} 日志清理完成")
elif sys == 'w' and path:
os.system(f'findstr /v {ip} {path}.log > {path}_new.log')
os.system('net stop w3svc')
os.system(f'del {path}.log')
os.system(f'rename {path}_new.log {path}.log')
os.system('net start w3svc')
print("IIS 日志清理完成")
elif sys == 't' and path:
os.system(f'grep -v {ip} {path}/catalina.out > {path}/catalina_new.out')
os.system(f'rm {path}/catalina.out')
os.system(f'mv {path}/catalina_new.out {path}/catalina.out')
print("Tomcat 日志清理完成")
else:
os.system(f'findstr /v {ip} access.log > access_new.log')
os.system('del access.log')
os.system('rename access_new.log access.log')
os.system(f'findstr /v {ip} error.log > error_new.log')
os.system('del error.log')
os.system('rename error_new.log error.log')
print("Apache 日志清理完成")
if __name__ == '__main__':
banner = """
_____ _ _____ ___ _____
/ ___| | | | ____| / | | _ \
| | | | | |__ / /| | | |_| |
| | | | | __| / / | | | _ /
| |___ | |___ | |___ / / | | | | \ \
\_____| |_____| |_____| /_/ |_| |_| \_\
version: 0.0.1
author: xans
"""
print(banner)
# 使用argparse去解析命令行传来的参数
parser = argparse.ArgumentParser(description="clear tool",
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog=textwrap.dedent('''example:
python3 clear.py -s w -u 192.168.1.108
'''))
# 添加参数
parser.add_argument("-s", "--sys", dest="sys", type=str, help="input a system")
parser.add_argument("-u", "--ip", dest="ip", type=str, help="input a ip")
parser.add_argument("-p", "--path", dest="path", type=str, help="input a path")
# 把参数的值解析到对象中
args = parser.parse_args()
main(args.sys, args.ip, args.path)
后续有时间在添加其它功能…