Daten aus FHEM auf den Webserver übertragen

Um einige Daten (zum Beispiel für die aktuellen Spritpreise) von meinem FHEM-Server ins Netz zu übertragen nutze ich ein (unschönes, aber funktionierendes) Skript, welches zunächst per wget die gewünschten SVG-Dateien aus FHEM abruft und anschließend per ftp hochlädt.
Nach dem x-ten Neuaufsetzen des Servers funktionierte das Skript nicht mehr, was im Wesentlichen daran lag, dass es keine FTP-Zugangsdaten mehr hatte.
Diese hatte ich aus Sicherheitsgründen nicht im primären Skript, sondern in einer separaten Datei namens .netrc im home-Verzeichnis.
Da ich den Aufbau nicht mehr im Kopf hatte hier zur Erinnerung die notwendigen Infos:

  • Die Datei .netrc muss im home-Verzeichnis des Users liegen, der den ftp-Befehl aufruft.
  • Sie darf nur für den User lesbar sein: chmod 600 .netrc (unter raspbian gerne auch mit vorangestelltem sudo)
  • Inhalt (für mehrere Login-Daten einfach mehrere Machinen anlegen):
    machine ftp.server
            login MeinName
            password istmeinPasswort
  • Ab sofort funktioniert der Zugriff mittels ftp ftp.server

Allerdings bin ich bei der Recherche (wieder einmal) auf curl gestossen. Damit sollte ist es möglich sein, meinen bisherigen wget-speichern-ftp-upload-rummel mit einer pipe zu verkürzen, ungefähr im Sinne von curl fhem-server/svg | curl -T - ftp://mysite.org/svg. Und damit curl seinerseits meine o.g. .netrc nutzt, muss ich das nur mit -n als zusätzlichem Parameter beim Upload angeben. 1,2

[1] stackoverflow, abgerufen 2017-07-27
[2] haxx.se, abgerufen 2017-07-27

Gib auch Du Deinen Senf dazu