我正在运行 Ubuntu,并有一个简单的 cronjob 来获取远程 JSON 文件并将其(覆盖)写入服务器。
*/15 * * * * /usr/bin/curl -m 120 -s https://path/to/remote/json.json > /store/json/here.json
但是,我需要确保外部 JSON 在覆盖服务器上的 JSON 文件之前实际返回数据。
我怎样才能实现这个目标?我找到了一些直接在 bash 中执行此操作的方法,但当我放入 crontab 时似乎不起作用。
答案1
编写一个简短的 shell 脚本并从 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
是真的如果给定文件的大小大于零。