A resposta para o meu problema foi dada por @meuh
If you want
curl
to send the contents of a file, and not just the filename, you would need-d @filename
but tilde~
will not be expanded so use-d @$HOME/Desktop/testFile.json
Eu tenho um script chamado testScript.sh que se parece com isso:
#!/bin/bash
curl -X GET https://www.example.com -o ~/Desktop/testFile.json
curl -X POST -d ~/Desktop/testFile.json http://www.example2.com
Eu quero rodar este script com o crontab, então eu editei o arquivo crontab com o comando crontab -e
assim:
* * * * * ~/Desktop/testScript.sh
A parte estranha é que quando executo o script manualmente como ./testScript.sh
com pi user, ambos os comandos curl são executados bem. Quando o script é executado a partir do crontab, vejo o testFile criado para que o primeiro comando curl seja executado, mas o curl Post não é executado. Eu já fiz minha pesquisa e a maioria das pessoas diz que são variáveis de ambiente, mas não consigo entender nenhuma das respostas.
EDIT * Eu segui a sugestão @roaima para criar um arquivo de log. Logs: .... Não foi possível ler os dados do arquivo testFile.json ", isso faz um aviso vazio: post ....... o post curl então está me dando um 400 bad request porque não há conteúdo para postar . 1) o testFile.json é criado com o primeiro comando curl, eu o vejo localmente na minha máquina, eu não sei porque ele não pode lê-lo. 2) o script ainda funciona bem se eu o executar assim./testScript.sh
A resposta para o meu problema foi dada por @meuh
If you want
curl
to send the contents of a file, and not just the filename, you would need-d @filename
but tilde~
will not be expanded so use-d @$HOME/Desktop/testFile.json