2014-05-20 2 views
1

Twitter 계정을 스크랩하고, CSV로 출력하고, CSV를로드/정리하고, MarkyMarkov를 통해 실행하여 @ebooks 스타일 트윗을 생성하는 루비 스크립트가 있습니다. .사용자가 실행할 때 Ruby 스크립트에서 오류가 발생합니다.

내가 명령 줄에서 수동으로 실행할 때 스크립트는 내 서버에 완벽하게 실행,하지만 난 크론를 통해 그것을 실행하면 다음과 같은 오류가 발생 결과 사이에 차이가 왜

usr/share/ruby/csv.rb:2058:in `=~': invalid byte sequence in US-ASCII (ArgumentError) 
from /usr/share/ruby/csv.rb:2058:in `init_separators' 
from /usr/share/ruby/csv.rb:1590:in `initialize' 
from /usr/share/ruby/csv.rb:1376:in `new' 
from /usr/share/ruby/csv.rb:1376:in `parse' 
from script.rb:57:in `<main>' 

확실하지 않음 나는 그것을 실행하고 cron. 잘못된 점이나 디버깅 방법에 대한 제안 사항은 무엇입니까? 루비 신참이야.

+3

cron에서 실행되는 루비 버전이 기본 인코딩이 US-ASCII 인 이전 버전 (2.0 이전)처럼 들리며 사용자 루비가 최신 버전인데 기본 인코딩이 UTF-8 인 경우 –

답변

1

프로파일 스크립트에서 루비 참조를로드하는 루비를 관리하기 위해 rbenv 또는 RVM을 사용하고 있으며 cron이 그러한 프로필을로드하지 않습니다 (예 : ~/.bashrc).

당신은 할 수 있어야한다 :

0 * * * * /bin/bash -l -c '/path/to/your/script.rb' 

이 사용자 환경을로드하고 제대로 스크립트를 실행해야합니다.

또한 익숙한 지 모르겠다. 상황에 따라 과용 될 수도 있지만, Whenever gem은 cron 작업을 처리 할 때 좋은 DSL을 제공합니다.

관련 문제