2010-06-09 2 views
3

나는 다음과 같다 제의 crontab에 항목이 : 나는 쉘에서 실행할 때crontab 항목을 테스트하는 방법은 무엇입니까?

0 3 * * * pg_dump mydb | gzip > ~/backup/db/$(date +%Y-%m-%d).psql.gz 

그 스크립트가 완벽하게 작동을하지만, 매일 밤 실행 될 것 같지 않습니다. 권한에 문제가 있다고 가정하고 있습니다. 아마도 crontab이 다른 사용자 또는 다른 환경에서 실행되고있을 것입니다. 어떻게 디버깅 할 수 있습니까? 저는 공유 호스팅 환경 (WebFaction)입니다.

+0

같은 문제가 있지만 빈 파일을 생성하고 있습니다. .pgpass 파일이 있는데 모든 경로가 꽉 차서 출력 파일이 만들어졌지만 비어 있습니다. 나는 다른 질문보다는이 질문에 더할 것을 생각했다. – Ben

+2

@ 벤 : 아마 다른 질문을하는 것이 더 나을 것 같다 ... 그래서 포럼과 같이 작동하지 않는다. 새로운 "스레드"를 시작하기에 눈살을 찌푸리게하지는 않는다. 당신의 문제가 약간 다른 경우. 파일이 실제로 작성되는 경우에는 아마도 완전히 다른 문제점이있을 것입니다. – mpen

답변

8

"%"문자 . 나는 정확히 같은 문제를 겪었다. 크론 오류

0 7 * * * mysqldump usblog | bzip2 -c > usblog.$(date --utc +\%Y-\%m-\%dT\%H-\%M-\%SZ).sql.bz2 

당신이하지 마세요 이메일 : 예를 들어

? crontab에 "[email protected]"을 넣더라도?

pg_dump 또는 gzip이 시스템 기본 경로에 없으면 ("유형 pg_dump"를 사용하여 경로를 확인하십시오. crontab은 일반적으로/bin 또는/usr에서 명령 만 실행합니다)/bin 기본적으로)

+0

작동하는 것으로 나타납니다. 감사 !! – mpen

2

항상 crontab 엔트리에서 전체 경로를 사용하십시오. 예 : /usr/bin/gzip. pg_dumpdate에 대해서도 수행해야합니다.

+1

또한'~'을 홈 디렉토리의 실제 경로로 대체하십시오. – JayM

2

작동하지 않는다고 말하면 어떻게됩니까? 파일을 전혀 생성하지 않거나 비어 있습니까?

시스템이 올바르게 설정되어 있으면 명령에서 출력이 생성되면 crontab이 전자 메일을 보내야합니다.

crontab이 실행 중인지 확인하려면 다음과 같이 시도하십시오. 매분마다 파일을 터치합니다.

* * * * * touch /tmp/foo 

그리고 James가 언급 한 경로를 확인하십시오.

+0

파일을 생성하지 않습니다. 나는 crontab이 실행 중임을 확신합니다. – mpen

+0

crontab에 액세스 할 수 있습니까? 일부 공유 호스팅 제공 업체가 허용하지 않는다는 것을 알고 있습니다. 당신은 아마 이것에 관하여 당신의 호스팅 회사와 이야기해야합니다. 확인할 수있는 것은'/ etc/cron.allow' 파일과'/ etc/cron.deny' 파일이 있는지 확인하는 것입니다. 'cron.allow'가 존재하고 사용자 이름이 없다면 crontab을 사용할 수 없습니다. 그리고'cron.deny'가 존재한다면, 당신은 당신의 사용자 이름이 그 안에리스트되기를 원하지 않을 것입니다. – JayM

+0

다른 crontab이 작동합니다. WebFaction은 그것에 대해 멋지다. 공유 된 사용자에게 많은 권한을 부여합니다. – mpen

1

이 등/crontab을/같은 인 경우, 사용자가 포함되어 있는지 확인하십시오 (5) 맨은 crontab을 볼 backslashes-와의 crontab 항목의

당신은 탈출 할 필요가
0 3 * * * <user_goes_here> pg_dump mydb | gzip > ~/backup/db/$(date +%Y-%m-%d).psql.gz 
관련 문제