나는 그것을 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