以下のように、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" これは空の警告を生成します。 jsonが生成されます。最初のカールコマンドを使用すると、私のコンピュータでローカルで見ることができますが、なぜ読めないのかわかりません。
答え1
私の質問に対する答えは@meuhによって提供されました。
ファイル名だけでなくファイルの内容を送信するには
curl
チルダが必要-d @filename
ですが、チルダは~
拡張されません。-d @$HOME/Desktop/testFile.json