Python/Python for Windows 37

[Python] xcopy DOS명령어를 조합한 증분 백업

DOS명령어 xcopy를 이용한 폴더, 파일 증분백업 xcopy는 폴더와 파일 백업시 유용하게 사용하고, 이 글에서는 증분백업인 D옵션만 작성하였다. /D:m-d-y 지정된 날짜 이후에 바뀐 파일을 복사합니다. 날짜가 지정되지 않으면 대상 파일보다 새로운 원본 파일만 복사합니다. - os.system : 실제 xcopy 명령어를 실행한다. - datetime.timedelta를 이용하여 입력받은 날짜만큼 전날을 계산한다. 0을 입력하면 당일날짜이다. 파이썬(python)과 조합하게 되면 수동으로 백업할 수도 있고, 입력을 빼고 전일로 세팅하면 자동으로 일 단위 백업도 가능하다. 또한, 다양한 모듈을 이용하여 결과를 메일발송하거나 로깅도 가능하다. import os import datetime inputD..

[Python] 윈도우 서버에서 SMTP서버로 메일 발송 (2)

윈도우 서버에서 SMTP서버로 메일 발송 (1) - SMTP 설치 https://pydole.tistory.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B0-%EC%84%9C%EB%B2%84-2008-2012-SMTP-%EA%B8%B0%EB%8A%A5-%EC%84%A4%EC%B9%98 import smtplib from email.mime.text import MIMEText msg = MIMEText('test') msg['Subject'] = 'Test' msg['From'] = 'mail address' msg['To'] = 'mail address' s = smtplib.SMTP('localhost') s.send_message(msg) s.quit()

[Python] 윈도우 netstat 명령어를 활용하여 아웃바운드 IP와 포트 추출

파이썬을 이용한 윈도우의 netstat -n 명령어를 이용하여 아웃바운드IP와 포트 그리고 빈도수를 출력 * netstat : 모든 연결과 수신 대기 포트를 표시 * option : -n 주소와 포트 번호를 숫자 형식으로 표시 netstat -n 명령어의 출력을 지정된 파일에 적재. (sample 초당 100번. 많으면 많을 수록 더 많은 데이터가 수집) import os import time cnt = 0 while cnt > 경로') # netstat -n 지정된 경로 파일적재 cnt += 1 time.sleep(1) 자신의 IP와 127.0.0.1을 제외한 IP와 포트 그리고 빈도 수를 출력 import collections import re i..

[Python] Counters를 이용한 IIS 웹 로그 IP주소 빈도 수 추출

xxx.xxx.xxx.xxx IP 패턴을 가장 많은 10개 추출 IIS로그 1.3G를 샘플로 실행해 보았다. 정규식을 이용하여 원하는 데이터를 출력 import collections import re from datetime import datetime def timecheck(): return datetime.today().strftime('%X') print(timecheck()) words = re.findall(r'\d{,3}[.]+\d{,3}[.]+\d{,3}[.]+\d{,3}[.]',open(파일, errors='replace').read().lower()) print(collections.Counter(words).most_common(10)) print(timecheck()) -------..

[Python] 하위 디렉토리 파일크기와 라인 수 추출

파이썬 하위 디렉토리 파일크기와 라인 수 추출 소스코드 진단을 위해 실행파일의 크기와 라인 수(개행 포함)를 추출해야 할 일이 생겼다. 코드설명 - 하위 디렉토리 순위. - 필터 확장자는 Pass. 반대로 필요한 확장자만 역으로도 검색할 수 있다. - 출력파일은 엑셀에서 ; 구분자로 불러오기 할 수 있다. import os def filemtime(): global cnt global text os.chdir(path) with open(filename,'r', errors='replace') as f: lines = f.readlines() for cnt, line in enumerate(lines,1): pass text = path+';'+filename+';'+ext+';'+str(os.path...