아래와 같이 testScript.sh라는 bash 스크립트가 있습니다.
#!/bin/bash
curl -X GET https://www.example.com -o ~/Desktop/testFile.json
curl -X POST -d ~/Desktop/testFile.json http://www.example2.com
저는 crontab을 사용하여 이 스크립트를 실행하고 싶었기 때문에 crontab -e
다음과 같은 명령을 사용하여 crontab 파일을 편집했습니다.
* * * * * ~/Desktop/testScript.sh
이상한 점은 ./testScript.sh
pi 사용자로 스크립트를 수동으로 실행할 때 두 컬 명령이 모두 정상적으로 실행된다는 것입니다. crontab에서 스크립트를 실행하면 testFile이 생성되어 첫 번째 컬 명령은 실행되지만 컬 포스트는 실행되지 않는 것을 볼 수 있습니다. 나는 연구를 해왔고 대부분의 사람들은 그것이 환경 변수라고 말하지만 어떤 대답도 이해할 수 없는 것 같습니다.
편집* @roaima의 제안에 따라 로그 파일을 만들었습니다. 로그: ...unable to read data from file testFile.json" 이는 빈 경고를 생성합니다. post... 그런 다음 Post에 콘텐츠가 없기 때문에 컬 포스트는 나에게 400 잘못된 요청을 제공합니다. 1) testFile.json이 생성됩니다. 첫 번째 컬 명령을 사용하면 내 컴퓨터에서 로컬로 볼 수 있는데 왜 읽을 수 없는지 모르겠습니다. 2) 이렇게 실행하면 스크립트가 여전히 잘 실행됩니다.
답변1
내 질문에 대한 답변은 @meuh가 제공했습니다.
파일 이름뿐만 아니라 파일의 내용을 보내 려면
curl
물결표가 필요-d @filename
하지만 물결표는~
확장되지 않으므로 다음을 사용하십시오.-d @$HOME/Desktop/testFile.json