전체 글 445

[ Python ] pandas plot 을 이용한 다양한 graph 그리기

Pandas의 plot 을 이용하여 그래프 그리기 import numpy as np import pandas as pd df = pd.DataFrame(np.random.rand(20,6), columns=['a','b','c','d','e','f']) line graph df.plot.line(figsize = (15,5)) bar graph df.plot.bar(figsize = (15,5), grid=True) area graph df.plot.area(figsize = (15,5), xticks = (1,5,10,15,20), yticks = (1,2,3,4,5)) area graph ( Time index ) import numpy as np import pandas as pd from date..

[ Python ] socket 모듈을 이용한 Port open / close check

import socket from datetime import datetime import time checkTime = str(datetime.today())[:19] ipadd = '127.0.0.1' # IP Address, string port = 80 # Port Number, interger sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(5) res = sock.connect_ex((ipadd, port)) text = str(port) + ' : ' + checkTime print('Open ' + text if res == 0 else 'Close ' + text) -----------------------..

[ AWS ] Python boto3를 이용한 S3에 저장된 CSV 파일 읽기 / 쓰기

CSV파일 S3에 다이렉트 저장하기 Sample : Pandas DataFrame ( 24 X 5 ) from io import StringIO import boto3 s3 = boto3.client('s3') bucket = 'string' # Put Bucket Name csv_buffer = StringIO() df.to_csv(csv_buffer) s3.put_object(Bucket=bucket, Body=csv_buffer.getvalue(), Key='df.csv') S3에 저장되어 있는 CSV파일 다이렉트 읽기 import boto3 import pandas as pd import io s3 = boto3.client('s3') bucket = 'string' obj = s3.get_obj..

AWS Infra 2023.05.23

[ AWS ] Python boto3를 이용한 EC2 Instance 정보 구하기

Python Boto3를 이용하여 EC2의 정보를 구해보자. ISMS 등 자산관리 및 EC2의 기본적인 모니터링을 할 때도 유용하게 사용할 수 있다. import boto3 ec2 = boto3.client('ec2') def ec2_info_func(): ec2_info = {} response = ec2.describe_instances() for reservation in response["Reservations"]: for i in reservation["Instances"]: for j in i['Tags']: # tagName이 없으면 'None' tagName = 'None' if j['Key'] == 'Name': tagName = j['Value'] ec2_info[i["InstanceI..

AWS Infra 2023.05.22

[ Python ] pandas DataFrame을 HTML 형식으로 export 하기. (모니터링 활용)

pandas의 to_html 메소드를 이용하여 DataFrame 결과를 HTML 형식으로 output kor, math, eng 3개 컬럼의 기본 DataFrame 만들기 kor = [99, 53, 56, 56, 81, 90, 67, 68, 83, 55] math = [91, 77, 59, 70, 100, 67, 89, 55, 93, 99] eng = [96, 92, 92, 65, 51, 92, 55, 60, 54, 51] import pandas as pd df = pd.DataFrame(zip(kor,math,eng), columns=['kor','math','eng']) df html = df.to_html() print(html) kor math eng 0 99 91 96 1 53 77 92 2 ..

[ AWS ] Python boto3를 이용하여 WAF IPset IP 수정하기

Python Boto3를 이용한 WAF IPset에 IP Address 추가 * 하나의 IP를 추가/삭제는 않되기 때문에, 기존 IP 리스트를 가져와서 수정하는 것 import boto3 client = boto3.client('wafv2') ipsetName = 'string' ipsetId = 'string' ipAddress = 'x.x.x./32' def wafv2_update_ip_set(n,i,a): # ip가 포함되어 있는지 get_ip_set으로 확인 response = client.get_ip_set( Name=n, Scope='REGIONAL', Id=i) if a in response['IPSet']['Addresses']: return 'exist ipaddress' else: # ..

AWS Infra 2023.05.16

[ Python ] csv 파일 읽고, 쓰기 ( pandas / csv 모듈 )

데이터를 처리하다 보면 csv 파일 자주 만나게 되는데, Python pandas와 csv 모듈로 처리할 수 있다. 파이썬 pandas csv 파일 읽고, 쓰기 샘플데이터 : example.csv (UTF-8) ============================= "Student","Math","Computer","English" "인호",90,85,100 "철수",85,100,95 "영희",75,70,85 "민수",95,85,90 "지훈",100,85,95 "지영",90,85,90 "정희",95,85,95 ============================= pandas의 read_csv 메소드로 csv 파일 읽기 import pandas as pd df = pd.read_csv(r'C:\Python\..

[ 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 ] ntplib 모듈을 이용한 시간 동기화 점검

ntplib 모듈설치 pip install ntplib NTP서버와 로컬간의 offset 체크 import ntplib from time import ctime timeServer = 'time.windows.com' # NTP Server Domain Or IP c = ntplib.NTPClient() response = c.request(timeServer, version=3) print('NTP Server Time과 Local Time과 차이는 %.2f s입니다.' %response.offset) -------------------------------------------------------------------- NTP Server Time과 Local Time과 차이는 0.71 s입니다. ..