이것은 또 다른 기본적인 크론 문제처럼 보일 수 있지만, 이것을 알아낼 수는 없습니다:
@hourly "/usr/bin/php /usr/local/bin/notify.sh"
여러 가지 항목을 한 서버에서 다른 서버로 옮겼고 몇 가지 작업을 마친 후 대부분 원활하게 실행되었으며 이제 불을 끄고 있습니다.
다음 크론 작업이 실행될 때 매시간 이 이메일을 받습니다.
/bin/sh: 1: /usr/bin/php /usr/local/bin/notify.sh: not found
대개,찾을 수 없음PATH가 존재하지 않아서 발생했지만(크론 작업 관련 문제)전체 경로PHP 및 스크립트용. 스크립트는 루트로 실행되며 스크립트를 대화형으로 실행할 수 있습니다.
스크립트에는755
보안을 위한 권한(누구나 읽거나 실행할 수 있음)이므로 권한은 문제가 되지 않습니다.
스크립트와 이 스크립트가 호출하는 스크립트를 수동으로 실행할 수 있으므로 이 "찾을 수 없음"이 어디서 나오는지 알 수 없습니다.
실행된 것 외에 cron 로그에는 의심스러운 것이 없습니다.
이전 서버에서는 잘 작동합니다.
여기에 다른 요인이 있을 수 있나요? 아니면 이 문제의 원인을 어떻게 추적할 수 있나요?
답변1
입구
@hourly "/usr/bin/php /usr/local/bin/notify.sh"
단일 인수로 전달됩니다 /usr/bin/php /usr/local/bin/notify.sh
. /bin/sh -c
이것이 오류 메시지의 이유입니다
/bin/sh: 1: /usr/bin/php /usr/local/bin/notify.sh: not found
그 누구보다도
/bin/sh: 1: /usr/bin/php: not found
Could not open input file: /usr/local/bin/notify.sh
프로그램 /usr/bin/php
과 해당 파일 이름 인수를 별도로 전달하려면 /usr/local/bin/notify.sh
따옴표를 제거하십시오.
@hourly /usr/bin/php /usr/local/bin/notify.sh