Upload zu FTP Server mit Bash Script

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Tick

Benutzer
Registriert
11. Apr. 2012
Beiträge
20
Reaktionspunkte
0
Punkte
0
Guten Abend,

Ich bin gerade dabei mir einen Bash Script für mein DS212+ zu schreiben. Dieser soll die aktuelle Externe IP abfragen und diese in eine PHP Datei auf einen Externen FTP Server (mit Zugangsbeschränkung) hochladen. Die IP Abfrage und das schreiben der PHP Datei funktioniert problemlos, doch nun stehe ich vor dem Problem, die PHP Datei auf den FTP Server zu laden.

Alle meine Lösungsansätze sind gescheitert:
Mit »wget« geht der Download von dem FTP Server. (hilft mir aber nicht's weil ich ja nen Upload brauch)
ftp, wput, ... usw. mit denen ein Upload möglich währe, sind nicht auf der DS.



So sieht mein Script bis jetzt aus (Die PHP Datei wird leider momentan nur lokal auf die DS gespeichert):
Rich (BBCode):
#!bin/bash

#Ermitteln der Externen IP 
IP=$(ip route | head -n 1 | cut -c 29-43)

#Löschen der Alten Index.php Datei
rm -f /volume1/web/IP/index.php

#Schreiben der PHP Datei 
#Die PHP Datei is eine automatische Weiterleitung auf die Externe IP meiner DS
echo -e "<?php
header(\"Status: 301 Moved Permanently\");
header(\"Location:http://"${IP}"\");
exit;
?>" >> /volume1/web/IP/index.php

Und Achtung: Es kann sein, dass bei euch das Auslesen der IP Adresse nicht Richtig funktioniert, weil der Skript einen feste Anzahl von Zeichen löscht und dort auch eine IP Adresse enthalten ist. (Diese IP ändert sich bei mir nicht. Aber ihr habt sehr vahrscheinlich eine IP mit einer anderer Länge, bei der die zu löschenden Zeichen nicht mehr stimmen.)
Und der Grund wieso ich die Externe IP nicht einfach aus der »/tmp/externalIP.result» Datei auslese, is weil trotz dem »/usr/syno/sbin/ddnsd -e« Befehl, nicht immer die Aktuelle IP ausgegeben wird.


Ich hoffe mal, dass Ich euch mein Problem verständlich beschreiben konnte und, dass mir wer helfen kann wie ich dem Upload hin bekomme.


Grüße von mir und Danke schon mal im Vorraus :)
 
Hallo,
da Du ja schon die bash drauf hast, hast Du ja wohl ipkg installiert.
ipkg install wput

Gruß Götz
 
»Ipkg« war nicht installiert. Hab dies und »wput« installiert, damit funktioniert es jetzt wunderbar :)

Herzlichen Dank @Goetz
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat