본문 바로가기

Programming/python67

[Python] python에서 singleton 구현 Python으로 만든 프로그램에 crontab으로 스케쥴을 걸어놨더니..아놔~ 이게 중복으로 실행되서 서버가 위험에 빠질뻔 했다 ㅠ_ㅠ 쉘 프로그래밍에서는 대부분 ps 로 프로세스 목록을 가져온 후, 해당 프로세스 이름이 있으면 그냥 빠져나오도록 해서 중복 문제를 피하곤 했었는데, ' 아 python은 좀 더 편리하지 않을까??' 라는 생각에 singleton을 찾기 시작!의외로 손쉽게 결과를 찾았다..바로 tendo 라는 package를 설치하여 손쉽게 singleton 프로그램을 구현할 수 있었다.from tendo import singleton me = singleton.SingleInstance() if __name__ == "__main__" :[......] 위 방법 외에도 프로그램 생성 시 .. 2013. 8. 3.
[Python] Virtualenv Python에는 Virtualenv라는 것이 있다. virtualenv??? 말 그대로 가상 환경이라는 것이다. 대개 서버에서 python 작업을 하다보면 서버에 깔린 패키지가 version이 다른 경우도 있고, 새롭게 어떤 package를 깔려고 하면 서버 관리자의 허락도 받아야 하고.. 여간 불편하지 않을 수 없다. 그래서 나온게 바로 virtualenv!! 서버 내에서 python 자신만의 package 공간을 마련해 주는 것이다. 서버에 최신 버전의 mysql이 깔려 있더라도 virtualenv를 통해 이전 버전의 mysql을 깔고 구동시킬 수가 있다. 소개는 이 정도까지만 하고.. 그럼 이제 설치 하는 방법에 대해 살펴보자. 우선 내가 가진 환경이 우분투 12.04라서 12.04를 기준으로 설치.. 2013. 8. 2.
[Python] 초간단 메일 보내기 서버 관리를 하다보면, 자주 프로세스의 상태를 확인해야 할 경우가 있다. 하지만 하루종일 모니터만 보고 있을 수는 없지 않겠음??? 파이썬으로 프로세스 상태체크 한 후 프로세스가 죽었을 경우 메일로 전송받는 프로그램을 만들어 보기로 하였다. 아래 코드는 파이썬으로 만든 초간단 메일 전송 코드 2013. 7. 5.
[Python] 날짜를 시간으로 바꾸기 DB로부터 날짜 정보를 가져오고, DB 날짜에 임의의 수를 더한 후 현재 시간이랑 비교해야 하는데 이걸 어찌해야 할까... 고민 중..검색 하던 중 time.mktime() 이란 함수 발견..mktime은 1970년 이후의 날짜를 초단위로 계산해서 값을 숫자로 리턴해주는 기능을 하고 있다.어짜피 내가 하려고 하는 기능 역시 DB에 저장된 날짜 정보 값에 일정 초를 더한 값이 현재 값보다 큰지 작은지만확인하면 되는 것이었기 때문에 냅다 바로 사용!import time num = time.mktime((2013, 7, 4, 12, 20, 20, 0, 0, 0)) # 년, 월, 일, 시, 분, 초, (뒤에 세 개는 몬지 잘 모르겠음 -_-;;) 2013. 7. 4.