2017-12-06 12 views
0

로컬 저장된 스크립트에서 crontab psql 백업 작업을 실행하는 데 문제가 있습니다. crontab -e을 통해 작업을 추가했으며 crontab -l을 사용하면 작업 목록에 표시됩니다.로컬 저장된 스크립트에서 crontab 작업 실행

59 23 * * 7 /Users/myusername/backup.sh 

: ./backup.sh

를 사용할 때 실행하도록되어 스크립트는이 나는대로 작업을 설정 어떤 것을 확인, 예상대로 실행 잘 작동하고 지정된 S3 버킷에 출력을 덤프 매주 일요일 오후 11시 59 분에 작업을 실행해야하지만 그렇지 않습니다. 문제가 무엇인지 파악할 수 없습니다 (각 작업 사이에 줄 바꿈/공백을 남겨 두어야합니까, 아니면 내 crontab 목록에서 매우 손실 된 작업 직후에해야합니까?)

도움이 될만한 데 감사드립니다. 감사합니다. .

+1

일부 시스템 (예 : Ubuntu)에서 cron은 모든 작업 후에 개행을 예상하므로 crontab은 예를 들어'# '주석이 포함 된 행으로 끝나야합니다. 맨 페이지에 언급되어 있습니다. –

답변

0

배포판에 따라 크론 서비스에 대한 로그를 확인 할 수 있습니다 가능한 문제의 이유

비 완전한 목록 :.

  1. 크론 서비스는 따라서 전혀 실행되지 않고 아니다 작업 중 하나를 시작하는 중
  2. 일반적으로 Cron은 스크립트에 매우 제한된 환경 변수 세트를 전달하므로 환경이 누락되어 스크립트가 실패 할 수 있습니다. 그건 아마도 당신이

    크론 서비스를 수행 할 수있는 크론 데몬 로그

에 반영됩니다 : (? 또는 systemctl status crond) 배포판이 systemd를 사용하는 경우 다음 systemctl status cron 실행이 실행 중인지 확인하려고.

스크립트가 시작되었지만 실패합니다. 여기에 몇 가지 시도해보십시오. 스크립트가 시작되어야하기 전에

  1. 어쩌면 journalctl --unit cron 또는 journalctl -f 같은과, 크론 서비스 로그를 확인하십시오;
  2. 홈 디렉토리에 실패한 스크립트의 출력을 포함하는 dead.letter 파일이 있는지 확인하십시오. Cron이 스크립트를 시작하고 스크립트가 무언가를 출력하면 (문제로 간주되는), 그 결과가 여러분에게 발송됩니다. 우편물이 제대로 구성되지 않은 경우 일반적으로 해당 파일로 이동합니다. 스크립트의 시작 부분에서이 같은
  3. 넣어 뭔가 :

(
    date 
    id -a 
    set 
    echo 
) >> /tmp/myscript.log 
그런 다음 크론이 스크립트를 실행 때까지 기다려야하고 파일 /tmp/myscript.log이 생성되었는지 확인합니다. 그런 다음 스크립트를 수동으로 실행하여 지금 알고있는 cron으로 생성 된 모든 환경을 복제하십시오. 나는. cron 변수를 제외하고 모두 설정을 해제하고 id이 올바른지 확인하십시오.