crontab 으로 스케쥴 잡 등록 시키기

python 과 crontab 을 잘 연결시키면 스케쥴 작업을 완벽하게 만들 수가 있습니다. 간단한 배치 작업들은 굳이 다른 시스템을 사용할 이유가 없습니다.

기본 editor 를 emacs 로 변경하기

$ export EDITOR=emacsclient

아무 설정을 하지 않으면 vi 로 설정되어 있습니다.

기본적인 기능

CRUD 에서 U 는 C 와 동일하니 기능을 살펴보기로 합니다.

입력 (Create)

$ crontab -e

보기 (Read)

$ crontab -l

지우기 (Delete)

$ crontab -d

주기 결정

*          *        *        *       *
분(0-59)  시간(0-23)  일(1-31)  월(1-12)   요일(0-7)

실제 예

* * * * * ls -la

인코딩 관련

crontab 으로 파이썬 스케쥴을 돌릴때 특히나 console 에 한글을 출력하는 경우에 에러가 자주 발생합니다. Unicode 에러 인데요. crontab 은 shell 환경을 가져오지 않기 때문에 발생합니다. 해결 방법은 의외로 간단합니다. crontab 에서 입력 할때 마치 쉘 환경 처럼 적어주면 끝입니다.

   PYTHONENCODING=utf-8
   LANG=ko_KR.UTF-8          
   0 * * * 1-5 source /Users/crazia/miniconda3/bin/activate /Users/crazia/miniconda3/envs/cr-mon/ && 
   /Users/crazia/miniconda3/envs/cr-mon/bin/python /Users/\
crazia/work/python-projects/cr_mon/manage.py stats >> /Users/crazia/work/stats.log 2>&1

miniconda 상에서 cr-mon 이라는 환경을 만들고 django style console 로 만들어서 실행시키고 로그를 남기는 예제 입니다.

민트 리눅스를 잘 쓰고 있었습니다. 그러다가 갑자기 로그인을 하는데 화면이 검게 나오고 아무것도 진행이 안되더군요. 다른일을 하는 중이였기 때문에 침착하게 기다렸습니다. 한시간이 지나도 역시 검게 되어 있는 형태더군요. (한시간은 마치 그렇게 느꼈다는 뜻입니다. 저는 개발자 답게 인내심이 많지가 않습니다 ㅋㅋ) 


그 검은 상태에서 마우스 오른쪽을 누르니 메뉴가 나오긴 하더군요. - 브라우져, 터미널 등등 - 이거 저거 다 눌러 보지만 별다르게 쓸만한 것은 없더군요. 


그중에서 'Terminal Emulator' 를 선택하면 터미널 창이 하나 나오는데 거기서 


sudo apt-get remove openbox 


를 입력해서 지워주고 다시 시작하면 정상 복구가 됩니다.  저와 같은 현상이 벌어진 분들에게 바치는 팁입니다. 

정말 예전 포스트 에서 민트 리눅스 (Mint Linux) 를 추천한 적이 있었습니다. 간만에 그 노트북이 생각나서 꺼내서 사용하니 OS 설치한지 오래되서 지원이 끊겼습니다. 민트 리눅스도 기반이 우분투(Ubuntu) 인지라 우분투의 지원주기랑 같습니다. 즉 우분투가 LTS (Long Term Support) 버젼이면 민트도 LTS 가 되는 것이지요. 따라서 우분투 LTS 버젼의 최근 것이 12.04 니까 민트도 거기에 해당하는 버젼이 민트 13 마야 (Mint Linux 13 Maya) 가 되는 것이지요. 

http://www.linuxmint.com/release.php?id=18

위 링크를 클릭하시면 민트 리눅스를 받을 수 있습니다.  저사양 노트북에는 씨나몬 (Cinnamon) 보다는 메이트 (Mate) 가 낫다고 하더군요. 기능성은 조금 떨어지지만 더 가볍다고 합니다. 그리고 제 빌어먹을 소니 노트북은 32비트 CPU 기 때문에 32 비트 버젼 Mate 를 설치해줍니다. 

다운로드 받은 iso 파일이 있다면 이제 이것을 USB 스틱에다 넣어서 부팅이 가능하도록 만들어 줘야 하는데 몇가지 방법이 있습니다. 그러나 제 경험으로는 몇가지 방법이 있다고는 하지만 되는 방법은 별로 없었습니다.

제 추천은 Universal-USB-Installer 를 이용하는 것을 추천드립니다.  


만약 윈도우에서 Linux 계열의 부팅이 가능한 USB 스틱을 만드는 경우라면 위의 프로그램을 이용하는 것이 가장 편했습니다.

그후에 시키는대로 대충 누르시면 설치가 됩니다. (민트 리눅스를 설치하는 방법은 여러군데서 찾을 수 있을 뿐더라 설치 자체도 쉽습니다)

설치후에 해야 할 일

사실은 이 부분이 더 중요합니다.  먼저 민트 리눅스 마야 (Maya) 는 LTS 인 12.04를 기반으로 하긴 하지만 이 버젼 자체가 옛날에 나온 것이기 때문에 소프트웨어 업데이트를 해줘야 합니다. 하지만 소프트웨어를 가져오는 소스 기반이 해외로 되어 있기 때문에 안그래도 시간이 걸리는 업데이트가 하루종일이 걸릴 수가 있습니다. 

1. 소스 레파지토리 (Source Repository) 한국으로 변경해주기 

$ sudo vi /etc/apt/sources.list


커맨드 라인에 위처럼 입력하시고 비밀번호를 입력하시면 나오는 상태에서

:1,$s/archive.ubuntu.com/ftp.daum.net/g


 로 입력하시면 병경이 됩니다. 그리고 

deb http://packages.medibuntu.org/ precise free non-free 



이 주소는 더 이상 사용되지 않는 것 같더군요. 원활한 진행을 위해서 맨 앞에 # 를 추가해서 막아줍니다. 

$ sudo apt-get update 



를 커맨드 라인에 입력하셔서 업데이트 해 줍니다.

그리고 왼쪽 하단의 'Menu' 버튼을 클릭하시고 '패키지 관리자'를 실행해 줍니다. (아마 한글이 안 깔린 상태라면 'Package Manager' 란 이름일 것입니다) 

 
이런게 뜨면  '설정' - '저장소' 를 눌러서 화면을 띄웁니다. 그러면 나오는 화면에서 



 위처럼 클릭하시고 나온 화면에서 



이렇게 선택하시고 '서버 선택' 버튼을 클릭하시면 됩니다. 그리고 다시 '소프트웨어 소스' 화면에서 두번째 '기타 소프트웨어'탭을 클릭하셔서 http://packages.medibuntu.org 항목을 체크 해제 하거나 지워주세요. 


위 그림처럼 해주면 되지만 실은 이 부분은 커맨드 라인에서 해주는 작업하고 동일합니다. 만약 커맨드 라인 작업을 먼저 하셨다면 이 부분은 필요 없을  수도 있습니다. 

여기까지 마치셨으면 오른쪽 하단의 방패 마크를 클릭하셔서 나오는 화면에서 


 '새로 고침'을 눌러서 저장소 업데이트 해주고 위 그림처럼 '업데이트 설치' 를 눌러서 긴 시간동안 설치해주시면 최신 소프트웨어로 업데이트 됩니다. 

2. 한글 설정

아직 한글이 제대로 설정이 안되는 경향이 있습니다. 이것은 1번 작업을 했다면 손 쉽게 해결할 수가 있습니다.  왼쪽 하단의 'Menu' 버튼을 클릭하시고 '제어판'을 클릭하시면 (한글 디스플레이 표기 전이라면 Control Pannel 일 것입니다. 아마도..) 


에서 위 그림과 같이 'Language Support' 를 클릭하셔서 나오는 화면에서 무엇인가를 설치하겠냐고 물어보면 설치한다고 대답하시고 나오는 화면에서 

 


위 그림 처럼  저 버튼 (다시 말씀드리지만 한글 디스플레이가 안되는 상황이면 영어 일 수가 있습니다) 을 클릭하셔서 나온 화면에서 

 
위 그림처럼 선택해서 (제 경우에는 영어 표시였고 Korean 을 선택해 줬습니다) '바뀐 내용 적용' 을 클릭해서 적용하면 됩니다.

여기까지면 한글 언어 팩이 설정된 것이고 이제 한글 입력기를 설치할 차례 입니다. 한글 입력기는 우분투에서 쓰이는 기본인 iBus 가 민트에서는 제대로 동작 안됐던 기억이 있습니다. 아마 소소한 버그였는데 고쳐졌을 지도 모르지만 한번 디인 상태라 모험하긴 싫더군요. 따라서 나비 (nabi) 를 설치해 주기로 합니다.

$ sudo apt-get install nabi



라는 마법의 키워드 한번만 입력해 주면 설치 완료 입니다.  한글이 적용되는 것을 확인하기 위해서 'Log out' 했다가 다시 'Log in' 하면 적용 된 모습을 확인 하실 수 있습니다. 

참고로 이 포스트는 그 설치된 민트 리눅스 마야 버젼에서 작성되었습니다. (화면 캡쳐도 물론 입니다. 이 버젼에 포함된 화면 캡쳐  프로그램 정말 쓸만하군요. @.@ )  

우분투 13.04 버젼을 설치하고 나니 기존에 12.xx 버젼에서 발생했던 문제가 그대로 있더군요. 기존의 문제는 xrdp 를 설치하고 외부에서 원격 데스크탑 (Remote Desktop)을 이용해서 접속해서 작업을 할 때 

'd' 키를 누르면 모든 화면이 태스크바로 사라지면서 바탕화면이 나오는 문제 입니다.  



 이거 때문에 작업이 힘듭니다. ( cd , sudo 등 d 자 들어가는 유닉스 명령이 얼마나 많습니까? ㅎㅎ) 해결 방법을 찾아내서 정리해서 올립니다. 

1. ccsm ( compizconfig-settings-manager ) 을 설치해 줍니다.
 

$ sudo apt-get install  compizconfig-settings-manager



2. ccsm 을 실행시켜 줍니다.
 

$ ccsm



3. 왼쪽 탭에 '일반 (General)' 을 선택하시고 그 후 오른쪽 패널의 '일반 설정정 (General Options)' 를 클릭합니다.

4. '키 바로가기 (Key bindings)'  를 클릭하면 나오는 그럴듯한 메뉴를 골라줍니다. '바탕화면 보기 (Show Desktop)' 제 경우에는 이녀석이더군요.

5. 그림에 있는 연필 비슷하게 생긴것을 클릭해 주면 '<Control><Super>d' 가 나오는 것을 찾아서 설정을 지워주면 됩니다.  


 
예전 포스트 에서 해결하는 방법을 올렸지만 unity-2d 랑 gnome-classic 등이 동작 안하는 현상이 13.04에서 발견됐습니다. 새로운 방법을 올리겠습니다. 

1. 기존에 쓰여져 있던 .xsession 을 지웁니다. (만약 존재한다면)  

2. 다음과 같이 차례로 입력합니다.

sudo apt-get install gnome-session-fallback
$ echo "gnome-session --session=gnome-fallback" > .xsession
$ sudo /etc/init.d/xrdp restart 



unity-2d 가 gnome-fallback 으로 바꼈다는 소리를 들었습니다. (카더라 통신입니다만..)
 
일단 제가 쓰고 있는 블루투스 동글이는


이런 모양입니다. 맥북에 부트캠프를 설치하면 절대 안 잡히는 그 문제의 동글이 인데, 리눅스 민트에서는 한방에 잡히더군요.

먼저 동글이를 usb 에 꼽아주고요. (전 모니터랑 연결 시켜둬서 모니터에 있는 usb 에 꼽아뒀습니다)

$ sudo apt-get install bluez-utils


이걸로 관련 어플들을 설치해주고 ,

$ sudo shutdown -r now


로 리부팅 해줍니다. (어쩐 일인지 바로 설치하고는 안 잡히더군요. ) 그리고 다음에 실행해 준 게 영향을 미쳤는지 모르겠습니다만.. 아마 안 미쳤을 것 같지만 혹시나 모르는 분들은 한 번 해보시는 게 좋을 듯 합니다.

$ sudo /etc/init.d/bluetooth restart

이후 오른쪽 상단에 있는 블루투스 모양의 아이콘에 오른쪽을 클릭하셔서 '새 장치 준비' 로 페어링을 해주시면 됩니다.


그리고 대부분의 블루투스가 그렇겠지만 헤드셋/헤드폰 이 합쳐진 버젼 이라면 꼭 소리 설정 부분에서


프로파일을 스테레오로 바꾸어 주셔야 합니다. 제꺼는 'High Fidelity Playback' 이더군요.



저는 터미널 (Terminal) 에서 작업을 많이 합니다. 민트를 깔아보고 놀랐던 이유가 터미널 프로그램이 이뻐서 였습니다. 그래서 기본 설정이 '흰 바탕에 검은색 글씨' 였는데 바로 '검은색 바탕에 회색 글씨' 로 바꾸어 줬습니다. 역시 검은색이 마음이 안정된다고나 할까요?

그랬는데 한글 언어팩을 설치하고 났더니만 터미널 상에서 한글이 정말 보기 싫게 변하더군요. 그래서 나눔고딕 폰트를 설치해주고 (저번 아티클 참조)

/etc/fonts/conf.d/69-language-selector-ko-kr.conf

를 열어서


	
    
		
			monospace
		
		
			Dejavu Sans Mono
			NanumGothic
		
	

위와 같이 추가해 주면 됩니다.  (정확히는 이미 되어 있는 것을 변경해 주는 것입니다)


그러면 이렇게 나눔고딕 형태로 한글 폰트가 바뀌게 됩니다.


http://storymate.tistory.com/118

위의 방법으로 했을 때도 한글이 설정이 안되는 경우 (제 경우에 그랬습니다) 에 쓸만한 방법입니다. 저는 그냥 나눔고딕 폰트를 설치해 주니까 한방에 해결됐습니다.

$ sudo apt-get install ttf-nanum


폰트가 설정이 안되서 발생하는 문제처럼 보이더군요. 아 그런데 민트에서는 파이어 폭스가 훨씬 이쁘네요. 전 모든 북마크 세팅이 전부 크롬에 되어 있는지라 크롬을 메인으로 쓰고 있지만 (결국 크롬하고 파폭 두개를 다 쓰게 됐습니다)


  최근 각광받고 있는 Linux Mint 를 설치해봤습니다. 결론은 대 만족입니다.  우분투 또는 리눅스 OS 를 메인으로 사용하고 싶은 사람에게 강력하게 추천합니다.
 
  곁들여서 제 환경을 조금 이야기 하자면 저는 컴퓨터가 5대 있습니다. 집에서 쓰는 데스크탑 1대와 서버 1대 , 그리고 노트북 3대 입니다. 노트북은 각각 Macbook-Air , Macbook-Pro , Sony VAIO 입니다.

제가 컴퓨터를 고르는 기준은 일단 데스크탑은 'Power' 입니다. 강력해야만 합니다. 노트북을 고르는 기준은 '이쁨' 입니다. 진짜 수년동안 노트북을 써왔지만 작고 이쁜게 최고 입니다. 그래서 VAIO 를 사용했었는데 최근 아시는 분은 아시겠지만 돈값을 못합니다. 그래서 애플로 갈아탔습니다. 작고 이쁜 소니에서 작고 이쁜 맥으로 갔을뿐입니다. (저는 애플을 좋아하지는 않습니다)

 
  DeskTop - Windows 7
  Server - Ubuntu 12.04
  MacbookPro - Lion
  Macbook Air - Lion
  Sony VAIO - Ubuntu 12.04


  소니는 도저히 느려서 Windows 7을 사용할 수가 없더군요. CPU 가 무려 셀러론입니다. 이걸 160만원이나 받아 쳐(!)먹다니  소니는 망해야합니다. 60만원대의 사양에 100만원의 디자인 마진을 붙이다니 (이쁘긴 이쁩니다) 제정신이 아닙니다. 그에 비해 애플은 20-30만원정도의 디자인 마진을 붙이더군요. (용서해줄만 합니다)

OS 는 게임을 하고 문서작업을 할 때는 Windows 가 최고로 편하더군요. (제 개인 기준입니다) 그리고 개발을 할 때는 Debian 계열의 리눅스를 따라올 OS 가 없다고 감히 말씀드리고 싶습니다. Weblock 이라고 제가 참여하는 오픈 소스 프로젝트 개발 환경을 윈도즈 계열에서 세팅한 적이 있었는데 8시간 정도 걸리더군요. 그러나 우분투에서 딱 3분 정도 걸리더군요. 이걸 비교를 할 수야 있을까요?
 
  OSX 는 이쁘고 개발환경 세팅도 중간 정도고 몇개 게임은 돌아가는 딱 중간정도의 OS 입니다. 그래서 딱히 애플을 좋아하거나 OSX 를 좋아하지는 않지만 자주 애용을 해주고 있습니다.

  우분투 (Ubuntu)는 정말 많이 이뻐지고 많이 편해졌습니다. 그러나 OSX 를 사용하다가 사용하면 왠지 '구려'보이는 것을 참을 수가 없었습니다. 그런 의미에서 Mint 는 정말 최적의 OS 입니다. Debian 계열의 빠른 개발환경!! OSX 에 필적하게 이쁜 UI !! 두마리 토끼를 훌륭하게 따라잡았습니다.

간단하게 캡쳐를 떠 봤습니다.



  그래서 Sony VAIO 에 Ubuntu 를 밀고 Mint 를 설치해줬는데 저사양에도 불구하고 깔끔하게 동작하더군요. 다시 한번 만족했습니다. 저사양에서 윈도우 (Windows) 에 질려서 좀 색다른 OS 를 사용해보고 싶은분들 Mac 은 비싸고 또 새로 사야 해서 귀찮은 분들을 위해서 가지고 있는 '고물형' 노트북에도 완벽하게 깔리는 Mint 를 추천합니다. 게다가 Windows 를 사용하시던 분들을 포섭하기 위해서 Windows  같은 UI 도 존재합니다.


우분투 (11.10) 에서 Emacs 를 콘솔모드로 (Console Mode) 로 사용중입니다. 뭐 다 괜찮다고는 말할 수 없지만 그럭저럭 사용하고 있습니다. 그런데 단어 뒤로 옮기는 명령인 Meta-B 를 누를때마다 (보통은 Alt-B 를 누름) 터미널의 메뉴가 뜨는 것입니다. 당연히 사용하기 짜증이 나겠지요? 그 문제를 해결하는 방법입니다.

터미널 '메뉴' -> 'Edit' -> 'KeyBoard Shortcuts..' 로 이동해서

Enable menu access keys (such as Alt+F to open the File menu) 라는 것 앞의 체크박스를 해제 해 줍니다.


Meta-B 기능을 바로 사용하실 수 있습니다.


+ Recent posts