私はUbuntuを実行しており、リモートJSONファイルをインポートしてサーバーに書き込む(上書き)簡単なcronjobを持っています。
*/15 * * * * /usr/bin/curl -m 120 -s https://path/to/remote/json.json > /store/json/here.json
ただし、サーバーのJSONファイルを上書きする前に、外部JSONが実際にデータを返すことを確認する必要があります。
この目標をどのように達成できますか? Bashで直接これを行ういくつかの方法を見つけましたが、crontabに入れても機能しないようです。
答え1
ショートシェルスクリプトを作成し、crontabから呼び出します。
スクリプトは次のとおりです。
#!/bin/sh
PATH=/usr/bin:$PATH
cd /store/json || exit 1
if curl -m 120 -s https://path/to/remote/json.json >here.json.tmp &&
[ -s here.json.tmp ]
then
mv here.json.tmp here.json
else
rm here.json.tmp
fi
テスト-s
は本物与えられたファイルのサイズが0より大きい場合。