curlを使って、あるCSVファイルをWEBから取得します。
そして、そのCSVファイルをそのまんま自社サーバ上の所定CSVファイルに上書きします。
この一連の動きを、cronで5分毎に実行します。
こんな感じの設定です
*/5 * * * * /usr/bin/curl -s http://www.example.com/api/v1/getRanking.php > /home/site/data/csv/hoge/ranking.csv
多分ないと思いますが、万が一なんらかのエラーがあったとして、
それがCSVファイルとして上書きされるのは非常にまずいです。
ので、curl取得に成功したらCSV出力しつつ、
なんらかのエラーが発生したら、それは /dev/null に出力するようにしたいです。
どのようなコマンドを書けば、私のしたいことが実現できますか?
コマンドラインのみで対応したいというこだわりはありますか?特に無ければbashでもphpでも良いのでスクリプト噛まして結果を判定すれば良いと思います
いえ、bashでOKです。教えてほしいことを明確にするためワンライナーで書きましたが、実際にはシェルスクリプトファイルに複数のコマンド記述があり、その中の一部になります。
レスポンスコードだけならcurlコマンドで取得し出来るのでその値を元に判定すればいいし、レスポンス自体は正常だが内容がおかしいという場合ならやはり取得結果を判定するプログラムを噛ませてその結果を元にファイル出力の可否を決める必要があります。
なので、まずは「万が一なんかのエラー」を可能な限り明確にしましょう。それによって対応方法が見えてくると思います。
回答1件
あなたの回答
tips
プレビュー