Python/Python for Windows
-
python을 이용한 IIS web log 분석 (4) - 파일 확장자Python/Python for Windows 2019. 7. 15. 18:39
cs-uri-stem 필드를 이용해 파일의 확장자를 분리할 수 있다. 확장자를 추출하여 할 수 있는 일은 1. 확장자 통계를 이용하여 IIS MIME에서 필요한 확장자만 식별 2. bak, sql, db, conf 와 같이 웹에서 노출되면 않되는 확장자들이 노출되는지 확인 fromdatetimeimportdatetime from datetime import timedelta import geoip2.database reader = geoip2.database.Reader('C:\DB\GeoLite2-city.mmdb') # path with open(r'C:\log\sample.log', encoding='utf-8', errors='replace') as f: lines = f.readlines() f..
-
python을 이용한 IIS web log 분석 (3) - 클라이언트 IP 국가식별Python/Python for Windows 2019. 7. 15. 12:41
이번 포스팅은 웹 로그 중 CIP(클라이언트 IP)를 이`용하여 국가식별을 하려고 한다. 국가식별을 하는 이유는 크게 2가지로 볼 수 있는데, 1. 국가별 인입 통계 2. 해외IP인입을 확인 및 차단하는 데 활용. (국내 서비스 일경우) 우선 GeoLite2 라는 국가DB를 다운받아서, CIP를 DB에 대입하여 국가정보를 추출하겠다. https://dev.maxmind.com/geoip/geoip2/geolite2/ GeoLite2 Free Downloadable Databases « MaxMind Developer Site GeoLite2 Free Downloadable Databases GeoLite Legacy databases were discontinued on January 2, 2019. L..
-
윈도우 성능 데이터 분석 3부 - 사례를 이용한 grafana 시각화Python/Python for Windows 2019. 6. 26. 19:43
3부에서는 Grafana를 이용하여 그래프를 표현해보겠다. grafana mariadb 연결 : https://pydole.tistory.com/217 한대의 웹서버나 7일간 데이터를 샘플로 CPU, Memory, Network 를 그래프로 표현해보자 1. Network Traffic (Rev + Send) - 인아웃바운드 총 트래픽이 초당 Peak 일때는 100M - 정기적으로 평일 오전에 트래픽이 많음을 알 수 있다. - 초당 100M면 서버를 증설하여 분산하거나 트래픽이 큰 컨텐츠를 발견하여 줄이거나 제거하는 것이 좋다. 2. process time - 대체적으로 CPU 사용율은 25%를 넘기지 않는다. - 20일 오전 CPU가 살짝 올라왔으나 정상범주이다. 프로세스별 CPU 점유 모니터링이나 작업..
-
[Python] 디렉토리(하위포함) 파일명 점검 하기Python/Python for Windows 2018. 7. 9. 01:53
웹 서버를 운영하다 보면 웹 소스, 동영상 등 파일명을 고려해야 하는데, 시스템 명령어나 SQL쿼리문, 특문과 같은 파일명 들어가 있는 파일명은 보안장비에서 오탐으로 필터가 될 수 있다. 파이썬으로 특정폴더 이하에 있는 파일을 간단하게 점검할 수 있다. 파일명에 SQL 쿼리 명령어가 포함된 파일명 체크 sysCmd = {'select':'slct', 'update':'updt','insert':'inst'} for (path, dir, files) in os.walk(r'D:\test4'): for filename in files: for i in sysCmd: if i in filename: print('%s 파일에 %s 가 포함되어 있습니다. %s 로 변경을 권장드립니다.' %(filename,i,s..
-
[Python] 변경된 날짜기준 파일검색Python/Python for Windows 2018. 6. 17. 00:36
* 날짜를 비교하기 위해서는 비교하는 타입이 같아야 한다. print(type(inputDate)) print(type(fileMtime)) * datetime.strptime : 입력받은 날짜를 'datetime.datetime 형식으로 변환 * datetime.fromtimestamp(os.path.getmtime) : 파일의 수정시간을 'datetime.datetime 형식으로 변환 # 테스트 디렉토리 경로 예제파일 경로 : [D:\test], 파일명 : [files.xlsx], 수정일자 : [2018-06-10] 경로 : [D:\test], 파일명 : [test1.txt], 수정일자 : [2018-05-26] 경로 : [D:\test], 파일명 : [test2.txt], 수정일자 : [2018-0..
-
[Python] 다수 파일에 원하는 문자열 찾기Python/Python for Windows 2018. 5. 26. 14:09
* 디렉토리가 다르면 sys.argv를 이용하여 파일명을 입력받을 수 있다. 파이썬의 glob모듈과 정규식을 이용한 다수의 파일에서 원하는 문자열 찾기 - 디렉토리 : D:\test . 파일1 : test1.txt AAA BBB CCC FFF DDD [AAA] AAA- . 파일2 : test2.txt DDD EEE AAA. FFF HHH . 파일3 : test3.txt GGG HHHBBB III FFFAAA 'AAA' 이라는 문자열이 포함되어 있는 파일과 정보 추출 import glob import re s = str(input('Input Searching Text : ')) p = re.compile(s) for i in glob.glob(r'D:\test\*.txt'): with open(i, 'r..
-
[Python] pickle 모듈 - 객체형태를 그대로 유지하면서 파일에 저장하고 읽기Python/Python for Windows 2018. 5. 20. 02:42
사전 데이터 형식으로 파일에 저장 import pickle as pk with open(r'D:\Log\pickle.txt', 'wb') as f: data = {1:'python',2:'is',3:'beautiful'} pk.dump(data,f) }q (KX pythonqKX isqKX beautifulqu. 저장된 파일 읽기 import pickle as pk with open(r'D:\Log\pickle.txt', 'rb') as f: loadData = pk.load(f) print(loadData) {1: 'python', 2: 'is', 3: 'beautiful'}
-
[Python] win32evtlog 모듈을 이용한 윈도우 이벤트 로그 추출Python/Python for Windows 2018. 5. 20. 01:42
당일 이벤트 로그 출력 import win32evtlog as wevt import datetime today = datetime.datetime.now().date() day_ago = today - datetime.timedelta(days=1) server = 'localhost' logtype = 'Application' hand = wevt.OpenEventLog(server,logtype) flags = wevt.EVENTLOG_BACKWARDS_READ|wevt.EVENTLOG_SEQUENTIAL_READ total = wevt.GetNumberOfEventLogRecords(hand) while True: events = wevt.ReadEventLog(hand, flags,0) if ev..