cURLを使用してJSONを取得するCronjob。ファイルに書き込む前に、応答が空でないことを確認してください。

cURLを使用してJSONを取得するCronjob。ファイルに書き込む前に、応答が空でないことを確認してください。

私は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より大きい場合。

おすすめ記事