Python/Python for Linux 15

[ Python ] 리눅스 iostat 결과값 DataFrame만들고, csv 저장

iostat : CPU통계와 디바이스와 IO통계를 출력해주는 유틸 tps 장치에서 초당 입출력 작업 수 kB_read/s 장치에서 초당 읽은(Read) 데이터 블록 (초당) kB_wrtn/s 장치에서 초당 쓴(Write) 데이터 블록 (초당) kB-read 장치에서 초당 읽은(Read) 데이터 블록 kB-wrtn 장치에서 초당 쓴(Write) 데이터 블록 [ 옵션 ] -m MB단위로 표현 iostats명령어의 결과를 DataFrame으로 만들고, csv 파일로 export import subprocess from datetime import datetime import time def iostat_data(): ps = subprocess.Popen(('iostat', '-m'), stdout=subpr..

[ Python ] 리눅스 mpstat 유틸을 이용한 CPU Core별 통계 뽑기. (평균값, 최대값, 최소값)

Datebase CPU Core 증설작업 후 Core별로 CPU가 모두 활동하는지 확인해볼 필요가 생겼다. 리눅스의 mpstat는 Core 별 사용량을 모니터링할 수 있다. 결과를 파일로 export 하고, Python을 하여 DataFrame화 하려 한다. DataFrame 하게 되면 DB, NoSQL 등에 저장하여 통계적으로 활용할 수 있겠다. 목표 : 리눅스의 mpstat 유틸과 python을 이용하여 Core 별 통계 추출 mpstat 명령어를 이용한 데이터 수집 ( 파일 리다이랙션 ) # 1초간격으로 모든 CPU Core 사용량을 추출 (리눅스 명령) # Output File : cpu_result_final.txt mpstat -P ALL 1 >> cpu_result_final.txt %usr..

[Python] Obtain capacity for Linux specific folder capacity. (리눅스 특정 확장자 용량 구하기)

특정 리눅스 폴더에 아래와 같이 특정 확장자(log) 만의 총 용량을 구하고 싶을 때 모든 용량을 구하고 싶을 때는 glob('*.*')와 os.path.getsise 모듈을 사용하면 된다. #!/usr/bin/python from os.path import getsize from glob import glob print sum([ getsize(x) for x in glob('*.log') ]) ------------------------------------------------- 5177085067 SAMPLE 324448621 Sep 11 02:03 2019-09-10.log 285908878 Sep 16 16:53 2019-09-16.log 381334202 Sep 26 16:20 2019-09..

[Python] pandas를 이용한 tomcat accesslog 분석 및 활용

톰캣 웹 로그도 pandas를 이용하면 빠른 속도로 처리할 수 있다. ​ 로그가 100만 ~ 1000만 이상 넘어가면 pandas를 이용하는 게 상당히 빠르며, DataFrame으로 저장하고, ​ CSV로 파일로 만들거나 다른 DB에 import 가 가능하기 때문에 활용도도 좋다고 볼 수 있다. ​ 엘라스틱서치, 몽고DB도 python API가 있기 때문에 역시 가능하다. 톰캣을 기본설치하게 되면, 아래와 같이 기본 로깅세팅이 되어 있다. ​ pattern="%h %l %u %t "%r" %s %b" ​ ​ tomcat logging에 관한 정보는 아래 링크를 참조 https://pydole.tistory.com/entry/Apache-Tomcat-Logging-%EA%B2%BD%EB%A1%9C%EC%9..

[Python] Linux에서 간단한 Web 모니터링 하기

Python Version : 2.7.5 #!/usr/bin/python import requests as req from datetime import datetime import time sites = ('http://192.168.x.77','http://192.168.x.77/xxxx.php') for site in sites: try: r = req.get(site) print site, 'return_code :', r.status_code except Exception as e: print site, 'fail' time.sleep(10) ★ 웹 페이지가 기동 중 일 때, 아래와 같이 응답코드 값을 리턴 받을 수 있습니다. http://192.168.x.77 return_code : 200 (..

[Python] Linux 디렉토리와 파일 리포팅

python의 os.walk module을 이용하면 디렉토리와 파일정보를 출력할 수 있고, os.path module을 추가하면 파일사이즈, 생성일, 수정일, 변경일 등을 추가로 활용할 수 있습니다. 디렉토리는 샘플이기 때문에 테썹이기 때문에 /etc로 하였는데, 실썹은 조심해야죠. 경로는 input으로 받아도 되겠습니다. python version : 2.7 [ Sample 1 - 특정 디렉토리내에 있는 파일명과 디렉토리 경로 보기 ] #!/usr/bin/python import os sum = 0 for (path, dir, files) in os.walk('/etc'): for filename in files: splitfilename = filename.split('.') print path, f..