찾다

 >  Q&A  >  본문

bash - Crontab의 자동 실행이 적용되지 않습니다.

crontab을 사용하여 예약된 작업 추가

으아아아

이 스크립트의 기능은 일부 데이터를 계산하고 보고서 파일을 생성하는 것입니다.

이 스크립트는 1분마다 한 번씩 실행되지만 실제 작업에서는 crontab이 예상대로 보고서 파일을 생성하지 않습니다.

그런데 이 명령을 수동으로 실행하면 "~/.script.sh" 파일이 생성되고 종료됩니다.

두 가지 질문이 있습니다.

1: crontab이 내 스크립트를 실행하지 않은 이유는 무엇입니까? crontab 로그(/var/log/crond) 출력을 확인했습니다. 5월 5일 20:36:01 localhost CROND[27260]: (ernest) CMD (/bin/bash -l -c '~/script.sh') 예외가 발견되지 않았습니다.

2: 스크립트를 실행하는 환경이 다른 건 아닐까? 테스트됨 "* * * * * /bin/bash -l -c 'source ~/.bash_profile && ~/.script.sh'" 둘 다 아닙니다.

저와 같은 문제를 겪으신 경험 있으신 전문가님 계시나요?

过去多啦不再A梦过去多啦不再A梦2805일 전862

모든 응답(5)나는 대답할 것이다

  • 过去多啦不再A梦

    过去多啦不再A梦2017-04-24 16:01:00

    스크립트를 수동으로 실행하면 적용되지만 crontab은 적용되지 않습니다. 가장 일반적인 이유는 다음과 같습니다. 스크립트의 명령은 절대 경로를 사용하지 않습니다.

    회신하다
    0
  • 習慣沉默

    習慣沉默2017-04-24 16:01:00

    ~$HOME에 따라 다르게 해석되므로 절대 경로를 사용해 보세요.
    일반적으로 script.sh 앞에

    을 추가합니다. 으아아아

    회신하다
    0
  • PHPz

    PHPz2017-04-24 16:01:00

    sudo crontab -e를 사용하여 crontab 명령을 생성하면 실행 사용자는 루트이고 여기의 ~도 /root로 구문 분석됩니다. sudo를 사용하지 않는다면 괜찮을 것입니다.

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-24 16:01:00

    으아악

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-24 16:01:00

    파일 권한 문제일까요?

    회신하다
    0
  • 취소회신하다