![명령은 수동으로 성공적으로 실행되지만 cronjob에서는 자동으로 실패합니다.](https://linux55.com/image/212718/%EB%AA%85%EB%A0%B9%EC%9D%80%20%EC%88%98%EB%8F%99%EC%9C%BC%EB%A1%9C%20%EC%84%B1%EA%B3%B5%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EC%8B%A4%ED%96%89%EB%90%98%EC%A7%80%EB%A7%8C%20cronjob%EC%97%90%EC%84%9C%EB%8A%94%20%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C%20%EC%8B%A4%ED%8C%A8%ED%95%A9%EB%8B%88%EB%8B%A4..png)
나는 그것을 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