2012-03-21 3 views
2

Google 사이트의 특정 콘텐츠를 백업하는 데 사용되는 일부 셸 스크립트를 Ruby에 다시 작성합니다. 나는 Ruby 1.8.7을 실행 중이며 루트로 실행되는 스크립트를 가지고 있으며 정상적으로 작동합니다.오류 코드 1을 반환하는 Ruby 스크립트가있는 Crontab

나는 방금 우분투 11.10의 cronttab에 스크립트를 추가하려고 시도했다. 나는 다음과 같은 솔루션을 시도했습니다

Mar 21 16:15:01 ubuntu CRON[4942]: (root) CMD (ruby /root/code/backup_images.rb local) 
Mar 21 16:15:02 ubuntu CRON[4941]: (CRON) error (grandchild #4942 failed with exit status 1) 

하지만 아무 소용이 :

env -i $SHELL --norc 

기발한를 생성

*/5 * * * * ruby /root/code/backup_images.rb local 

크론 내가 syslog에 다음과 같은 오류가 나타날 실행

crontab이 실행되는 것을 모방 한 새로운 알몸 쉘이 스크립트로 잘 작동합니다.

#!/usr/bin/env ruby 

내가 수동으로 실행할 때 기능을 변경하지 않고는 crontab을의 문제를 해결 한 내 스크립트의 상단에 그 선언을 추가했습니다.

나는 파일의 호출 결과를 출력하려했지만, 아무것도 포함하지 않은 새 파일 만 만듭니다.

나는 그 밖의 문제가 있을지 모르지만, Cron이 Ruby 또는 그와 유사한 것을 찾을 수없는 것으로 가정하고 있습니다. 나는 이것에 대해 오히려 새로운 것이므로 여기에서 막 다른 골목에 다다 랐습니다.

미리 감사드립니다.

답변

0

내가 잘못 당신이 당신의 crontab을

에 루비 경로를 적용 할 필요가 있지만, 개인적으로 내가 실행되는 루비 파일 경로에 불과 선호 믿습니다.

*/5 * * * * /root/code/backup_images.rb 지역

다음 backup_images.rb의 상단에
#!는/usr/빈/루비
를 추가

당신은 또한 루비 파일을 실행 파일로 만들 필요가 있습니다. chmod + x

+0

글쎄, 실행 권한이 없으며 파일에서 경로가 잘못되었습니다. 현재 호출은'*/5 * * * * /root/code/backup_images.rb local'이며 응답은 같습니다. 상태 1로 종료 – Nick

0

그래서 @tomodachi의 도움을 받아 한발 더 나아가 다음의 crontab 행을 명시 적으로 작성했습니다.

*/15 * * * * cd /root/code/ && ./backup_images.rb local > /root/code/log/script.log 

기본적으로 나는 bash 쉘에서 명령을 실행하려고 시도했지만 스크립트를 찾지 못했습니다. 그래서 직접 명시 적으로 들어가서 백업 스크립트를 실행합니다.

이 시점에서 모든 것이 정상적으로 진행되었습니다.

도움 주셔서 감사합니다.

관련 문제