scp를 통해 내 외부 IP 주소가 포함된 서버의 파일을 업데이트해야 합니다. 파일을 업데이트하기 전에 실제 IP 주소가 포함되어 있는지 확인하고 싶습니다. 그렇지 않으면 서버에서 업데이트하면 안 됩니다.
내 IP를 확인하는 cron 스크립트는 종종 가비지 오류 결과를 초래합니다.
내 목표를 어떻게 달성할 수 있나요?
답변1
현재 사용하고 계시다면
curl icanhazip.com > ip-location1.txt
그런 다음 옵션을 추가하면 -f
네트워크 서버가 오류를 반환하고 출력이 없는 경우 curl
오류를 반환할 수 있으므로 출력이 IP 주소인지 HTML 오류 메시지인지 알아낼 필요가 없기를 바랍니다. .
curl -f icanhazip.com > ip-location1.txt
좀 더 복잡하게 재시도 기능을 추가할 수 있습니다.
for i in 1 2 3 # if you want more retries, add more numbers here
do
curl -f icanhazip.com > ip-location1.txt
if [ $? -eq 0 ] && [ -s ip-location1.txt ]
then
break
fi
# if we get here, the current attempt failed
sleep 5 # be nice and wait a bit before retrying instead of spamming the service
done
if [ ! -s ip-location1.txt ]
then
echo "i cannot haz ip."
# do whatever you want to do in case of all the retries fail
fi