Python 66

서버의 로그를 파이썬으로 읽어서 slack으로 전달하기

from datetime import datetime import inspect, subprocess, socket from slacker import Slacker ''' 크론탭 로그 예제 Sep 01 00:00:00 서버이름 CROND[12345]: (실행하신분) CMD (실행 내용) Sep 01 00:00:00 서버이름 CROND[12345]: (실행하신분) CMD (실행 내용) Sep 01 00:00:00 서버이름 CROND[12345]: (실행하신분) CMD (실행 내용) 구현 내용 1. 매일매일 크론탭의 로그를 체크한다. 2. 예전 로그는 볼 필요가 없다. 3. 크론탭 로그에서 필요한 내용만 뽑아서 slack으로 전달한다. ''' # Sep 형식으로 월을 구해야 합니다. # 월을 영어로 구한 ..

datetime 활용하기

python에는 datetime이라는 훌륭한 라이브러리가 있습니다. datetime은 날짜와 시간을 조작하는 클래스를 제공합니다. 오늘은 strftime에 대해서만 공부해보려고 합니다. 현재 날짜와 시간을 알아낼때는 아래와 같이 이용합니다. from datetime import datetime all = datetime.now() # 2020-09-24 14:44:44 하지만 업무를 하다 보면 년도, 월, 일 혹은 시간만 뽑아내서 사용하는 경우가 훨씬 많습니다. 그럴때는 strftime을 이용하면 편리하게 이용할 수 있습니다. strftime은 포매터를 이용하여 원하는 내용을 출력하게 만들 수 있습니다. strftime과 strptime의 차이점을 간략하게 정리해보았습니다. strftime 객체를 문자열..

python slacker

1. python slack API - 준비 1. bot 만들고 token 얻기 https://api.slack.com/apps 위의 주소로 접속 Create New App 클릭 App Name 입력 -> Development Slack Workspace 선택 -> Create App 클릭 Your Apps 클릭 -> 방금 생성한 bot 클릭 Verification Token 복사 2. slacker 설치 pip install slacker 2. python slack API - 실제로 사용해보기 1. 공통 부분 작성 from slacker import Slacker token = "Verification Token" slack = Slacker(token) 2. 채널 리스트 얻어오기 channel_li..

pymysql

pymysql mysql timestamp select import datetime timestamp = datetime.datetime(2020, 1, 1) q = "SELECT * FROM test_table WHERE created_timestamp < %s" cursor.execute(q, (timestamp))column type 이 timestamp 라면 string으로 selct 하지 말것 timestamp = '2020-01-01' 오류는 발생하지 않지만 select는 불가능합니다. 꼭 datetime으로 변환해서 넣어줘야 합니다 pymysql timestamp 일부만 update 날짜는 그대로 두고 년도와 월만 update today = "2020-01" q = "UPDAT..

Python 2020.06.01

sqlalchemy

다가져오기 session.query(테이블이름).filter(테이블이름.컬럼이름 == 'test').all() 하나만 가져오기 session.query(테이블이름).filter(테이블이름.컬럼이름 == 'test').first() 특정 컬럼만 가져오기 session.query(테이블이름.특정컬럼이름).filter(테이블이름.컬럼이름 == 'test').all() 돌면서 지우기 res = session.query(테이블이름).filter(테이블이름.컬럼이름 == 'test').all() for r in res: session.delete(r) session.commit() 한번에 지우기 res = session.query(테이블이름).filter(테이블이름.컬럼이름 == 'test').delete(sync..