WPUT via SSH starten

  • 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.

Franze24

Benutzer
Registriert
09. Sep. 2012
Beiträge
42
Reaktionspunkte
0
Punkte
0
Moin Leute,

ich habe eine DSM 211j. Ich möchte darauf ein Uploadscript laufen lassen, aber erstmal hänge ich noch wo anders. Ich habe IPKGui installiert und mir von dort wput besorgt. WPUT ist auch vorhanden in /opt/bin/.

Ich kann mich via SSH root auf die DS einwählen, dann kommt logischerweise

Rich (BBCode):
Diskstation>

Wenn ich von dort versuche, Kommandos einzugeben, also

Rich (BBCode):
Diskstation> wput

Bekomme ich immer ein not found. Gleiches mit ipkg usw...

Dann habe ich versucht mittels cd auf opt/bin/ zu kommen und die Kommandos dort auszuführen, mit dem gleichen negativen Ergebnis. Deshalb die Frage: Wie kann ich wput von SSH starten? (analog gilt das natürlich auch für den Befehl ipkg usw... / gleiches negatives Ergebnis auch via Telnet)

Danke :)

Franze
 
Hallo Franze24

Was passiert wenn du den ganzen Pfad eingibst:

/opt/bin/wput
 
Hello und vielen Dank, das hat schonmal funktioniert!

Aber jetzt stehe ich hier:

Rich (BBCode):
DiskStation> /opt/bin/wput --remove-source-files --skip-existing --basename=/vol
ume1/homes/uname/toFTP/*.xls ftp://uname:pwd@url/

und bekomme

Rich (BBCode):
Warning: Neither a remote location nor a local filename has been specified. Assuming you want to upload the current working directory to the remote server.
--22:29:12-- `./.profile'
    => ftp://uname:xxxxx@url:21/./.profile
Connecting to IP ADRESSE... connected! encrypted!
Logging in as UNAME ... Logged in!
-- Skipping file: ./.profile
--22:29:13-- `./.ssh/known_hosts'
    => ftp://uname:pwd@url/./.ssh/known_hosts
Skipped 3 files.

Kann es sein, dass ich noch im falschen directory bin?
 
Hey dany, danke für deine Tipps. Das mit dem profil werde ich heute abend versuchen.

Die Übertragung läuft jetzt, danke nochmal :) Ich habe --basename gekickt. Dann liefs, hat aber aufm Server den gesamten Pfad angelegt, deshalb habe vor dem wput-Befehl noch cd zum DIR des zu syncenden Ordners gemacht und einfach einen *. So läufts. Ist bestimmt nicht die feine englische, aber mir reichts ;)

Danke!

Werde die Tage daraus ein Script bauen und den Cron anlegen, wahrscheinlich melde ich mich nochmal im Forum wg. neuer Fragen ;)
 
Ah noch ne Frage bzgl. des Pfads: Wie finde ich denn die .profile des users root? Danke :)
 
Hast Du schon einmal unter /root geschaut? Denk dran, dass Du mit die Option -a brauchst, um (hidden) Punktdateien aufgelistet zu bekommen (also z.B. "ls -al").
 
So also in .profile ist jetzt folgendes eingetragen: PATH=/opt/bin:/opt/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usexport PATH

Leider kann ich

Diskstation> wput

immernoch nicht ausführen.

Ich denke mittlerweile ist der Eintrag auch notwendig, da ich gerade mit Duplicity herumspiele und es mir immer sagt, ich soll NcFTP installieren, obwohl es installiert ist? Also kann es wohl das Programm auch nicht finden...
 
MOMENT, ich glaube, es geht jetzt. Ich musste die Shell neu starten :)
 
Cronjob zum Script geht nicht

Hallo,

ich habe jetzt das Script gebastelt, es liegt in / und funktioniert tadellos. Lediglich der Cronjob, der alle 5 Minuten das Script aufrufen soll, funzt noch nicht.

Eintrag:
*/5 TAB * TAB * TAB * TAB * TAB root TAB sh /wputpS.sh

Ich konnte die Datei leider nicht mit chmod +x schreibfähig machen.

Hat jemand noch eine Idee? DANKE :)
 
Ich konnte die Datei leider nicht mit chmod +x schreibfähig machen.
x steht in dem Falle für executable und nicht für writable.

Aber nun zu meiner Frage, bekommst du eine Fehlermeldung sobald du versuchst die Attribute der Datei mit chmod +x zu bearbeiten?

Gruß
luddi
 
Hey und danke für deine Antwort.

Nein, bekomme ich nicht, es geht nach dem Befehl ganz normal weiter mit

Rich (BBCode):
Diskstation>

so, als hätte es funktioniert. Eine Ausführung mit nur der Eingabe des Dateinamens geht allerdings trotzdem nicht.
 
kannst du hier mal zeigen wie die Dateiattribute der Datei sind?
Am besten einfach die Ausgabe die du mit diesem Befehl bekommst:

Rich (BBCode):
cd / && ls -la | grep wputpS

luddi
 
Wenn du als root angemeldet bist und mit cd in das Verzeichnis wechselst, in dem das Script liegt, musst du das Script trotzdem mit ./script aufrufen, um zu sagen, dass du das Script im aktuellen Verzeichnis meinst.
Das ist ist anders, als bei DOS/Windows. root hat aus Sicherheitsgründen das aktuelle Verzeichnis (.) nicht im Pfad.
 
ich habe jetzt das Script gebastelt, es liegt in / und funktioniert tadellos.
Von der Command line ist das script ja bereits ausführbar wie Franze24 berichtet.

musst du das Script trotzdem mit ./script aufrufen
Oder aber mit
Rich (BBCode):
sh sricpt.sh
man kann aber auch den befehl sh weglassen und macht es wie von dir beschrieben
Rich (BBCode):
./script.sh

Aber im crontab ist der Pfad absolut angegeben und das ist meiner Meinung nach auch korrekt.

Gruß
luddi
 
Hey luddi,

die Antwort

Rich (BBCode):
-rwxrwxrwx 1 username(adminrecht) users 131 Aug 7 08:26 wputpS.sh

hilft dir das was?

Ich kann das Script übrigens nicht mit ./wputpS.sh aufrufen: -ash ./wputpS.sh: not found
 
Dann fehlt im Script in der ersten Zeile evtl. der Shebang (?), der der Shell sagt, welcher Interpreter dafür zuständig ist.
Nimm mal "#!/bin/sh" als erste Zeile auf.
 
Ich wollte nur prüfen ob die Datei tatsächlich executable ist, und das ist sie für den owner, group und others also jedenfalls hat das mit dem chmod +x geklappt.
Zumindest stehen die Atrribute für eine Ausführung korrekt.
Du könntest ja noch eines ausprobieren und den owner der Datei ändern. Wobei ich es kaum vermute dass es daran liegt....

mhhh, gerade fällt mir nicht mehr ein.

luddi
 
Dann fehlt im Script in der ersten Zeile evtl. der Shebang (?), der der Shell sagt, welcher Interpreter dafür zuständig ist.
Nimm mal "#!/bin/sh" als erste Zeile auf.

Hallo ihr beiden, das habe ich schon. Und zwar #!/opt/bin/sh

Wie gesagt, es ist ja ausführbar und funktioniert (auch mit dem Kommando in der ersten Zeile). Nur der Cron nimmt es nicht...
 
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