저는 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보다 큰 경우.