명령은 수동으로 성공적으로 실행되지만 cronjob에서는 자동으로 실패합니다.

명령은 수동으로 성공적으로 실행되지만 cronjob에서는 자동으로 실패합니다.

나는 그것을 cron 작업으로 실행합니다.

( export PATH='/usr/bin:/bin' && echo "$PATH" && wget "https://www.mahmansystems.com.au/WSDataFeed.asmx/DownLoad?CustomerCode=%2F&WithHeading=true&WithLongDescription=true&DataType=0" -O mahman_direct.zip ) && echo 'I reached the end' &>> /home/myparadise/public_html/wp-content/uploads/import/files/output.txt

cron 사용자로 CLI를 실행하면 정상적으로 작동합니다.

지금까지 cron 작업이 자동으로 실패하는 이유는 두 가지뿐이었습니다. 이는 CLI와 cron에서 명령을 실행할 때 사용자와 경로의 차이 때문이었지만 이번에도 그런 것 같지 않습니다. cron 사용자로 실행으로 CLI에서 cmd를 테스트했는데 권한 오류가 관찰되지 않았습니다.

wget은 파일 검색 프로세스를 설명하는 일부 텍스트를 출력/표시하지만 사용자 상호 작용이나 입력/응답은 필요하지 않습니다.

출력.txt에는 오류가 발생하지 않습니다.

또 무엇이 잘못될 수 있나요?

curl -sLo만일을 대비해 대안 도 시도해 보았습니다 . 차이 없음.

답변1

%cron 환경의 플래그 동작 에 대해 모르겠습니다 .

탈출 \%하고 일하십시오.

참고문헌 1:https://stackoverflow.com/a/1921266

참고문헌 2:크론 트랩.

답변2

예상치 못한 장면과 같은 특수 문자가 발생하는 것을 방지하기 위해 제가 개인적으로 조언하는 것은 스크립트에 %아주 사소한 작업 외에는 아무것도 넣지 말라는 것입니다. cron(내 생각엔 그것에 대한 단일 호출이 wget합리적으로 사소한 것으로 분류될 수 있다고 생각합니다. 흠.) 그런 다음 에서 스크립트를 호출합니다 cron.

/usr/local/etc/mahmansystems(기억하세요 chmod +x):

#!/bin/sh
wget 'https://...' &&
    echo 'I reached the end'

그런 다음 시스템 수준 항목의 예를 들면 다음과 같습니다 cron.

0 * * * * www-data /usr/local/etc/mahmansystems >>& /home/myparadise/public_html/wp-content/uploads/import/files/output.txt

URL을 여러 번 호출하는 경우 사용할 URL을 식별하는 (간단한) 매개변수를 제공하여 동일한 스크립트에 넣을 mahmansystems수도 있습니다 case.esac

관련 정보