2017-07-12 1 views
0

Ich habe eine Cron-Aufgabe, um meine DDNS mit meiner aktuellen IP-Adresse zu aktualisieren und es durch einen cURL-Aufruf zu tun.Verschachtelte cURL Anruf

Das Problem ist einer der Parameter in den Anruf übergeben ist die aktuelle IP und um zu entdecken, ich brauche einen anderen cURL Anruf zu tun.

Ich mag würde wissen, ob möglich ist, zu nisten zwei cURL, um in einem einzigen Skript ruft meine Crontask vermeiden zusätzliche Skripte

Beispiel zu machen:

um meine aktuelle IP-I verwenden

curl ipinfo.io/ip 

mein ddns i tun müssen, aktualisieren:

curl -X PUT "https://api.cloudflare.com/client/v4/zones/2wertyh/dns_records/23ertghj" \ 
    -H "X-Auth-Email: [email protected]" \ 
    -H "X-Auth-Key: 123ertgyh" \ 
    -H "Content-Type: application/json" \ 
    --data '{"type":"A","name":"qwsdfg.com.br","content":"MY-CURRENT-IP","ttl":1800,"proxied":false}' 

wie ca ni passen diese zwei Anrufe zusammen, um meine Crontask

Antwort

2

Verwenden command substitution, wie diese zu machen:

curl -X PUT "https://api.cloudflare.com/client/v4/zones/2wertyh/dns_records/23ertghj" \ 
    -H "X-Auth-Email: [email protected]" \ 
    -H "X-Auth-Key: 123ertgyh" \ 
    -H "Content-Type: application/json" \ 
    --data '{"type":"A","name":"qwsdfg.com.br","content":"'"$(curl ipinfo.io/ip)"'","ttl":1800,"proxied":false}' 

String-Argument für --data aus drei verketteten Teilen zusammengesetzt ist, 'beginning'"$(curl ...)"'ending' (weitere Details siehe in this answer).

Verwandte Themen