Fragen Grundlagen: Script per SSH ausführen (Paket stoppen & 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.

zwantE

Benutzer
Registriert
02. Feb. 2012
Beiträge
302
Reaktionspunkte
0
Punkte
16
Servus,

ich möchte gerne per SSH ein Script auf der DS ausführen um ein Paket zu stoppen oder zu stoppen, und dabei benötige ich eure Hilfe.
Ich kann mich per SSH verbinden und anmelden und dort Befehle ausführen wie z.B. "poweroff"

ich will nun aber per SSH ein Script ausführen das auf der DS liegt, und da fangen meine Fragen an.

Wie muss das Script für das Beispiel "poweroff" aussehen, welches Format muss es haben, wo muss ich dieses abspeichern um es später auszuführen und wie rufe ich dieses per SSH auf?

Wenn das mit "poweroff" funktioniert, dann möchte ich 2 Scripte haben wovon mir eins ein Paket startet und das andere ein Paket beendet.

freue mich sehr über eure Hilfe meinen Horizont zu erweitern :)
 
Über Shellscripting solltest Du im Netz genug Einführungen finden. Du findest auch im Forum Beispiele. Das Skript muss mit der Zeile
Code:
#!/bin/sh
beginnen. Der Speicherort ist relativ egal, solange die nötigen Rechte vorhanden sind. Das Skript muss ausführbar sein. Mit dem Kommando chmod 755 gefolgt vom Skriptnamen kann man es ausführbar machen.
 
also erstelle ich eine Datei mit dem Inhalt
Rich (BBCode):
#!/bin/showthread.php poweoff
, aber als welches Format / Dateiendung speichere ich die Datei dann?

chmod setzen kenne ich...

und das Script dabb auszuführen, reicht einfach nur der Pfad zur Datei ?
 
Bei Deinem Skript ist etwas durcheinander gekommen. In der ersten Zeile sollte nur #!/bin/sh stehen, sonst nichts. Bei poweroff fehlt das "r".

Dateiendung ist schnurz. Manche verwenden .sh für Shellskripte.
 
Bei Deinem Skript ist etwas durcheinander gekommen.
ja im handybrowser ist das forum scheiße und da schleicht sich sowas schon mal ein! Danke für den Hinweis!

Und wie kann ich nun einen bestimmten Dienst stoppen / starten?
 
Schau Dir einmal /usr/syno/sbin/synoservicectl an.
 
Auch sehr informativ ist diese Seite: https://www.synology.com/de-de/support/developer#web_developer wobei du dann auf den Reiter "Holen Sie sich Dev SDK" klicken mußt um danach unten in der Liste zum "Web-API-Guide" zu scrollen und rechts dann auf "Erfahren sie mehr" zu klicken. Dort findest du auch Infos zu synoservice...

Tommes
 
Scheint schon etwas älter zu sein, denn wenn ich es richtig sehe, wurde synoservice ab DSM 5 durch synoservicectl abgelöst. In jedem Falle aber eine interessante Quelle. Danke, Tommes!
 
Scheint schon etwas älter zu sein...

*räusper* ist dem so? Hm, dann muß ich mich langsam wirklich mal wieder auf die Konsole der DS begeben und nicht immer an meinem Pi... ähm... Raspberry Pi rumspielen *g*

Danke jedenfalls für diesen interessanten Hinweis, dil88

Tommes
 
danke, dann kann ich ja mal ne runde lesen!
kann ich mir einfach im root einen Ordner für meine Scripte erstellen oder muss ich da was beachten?
 
leg den Ordner doch über die Filestation an, dann kannst du deine Skripte auch über den mitgelieferten Texteditor bearbeiten... nur auf den Pfad musst du aufpassen...
Wenn du z.B. das Verzeichnis "skripte" anlegst, dann ist der Pfad über die shell (also ssh) "/volume1/skripte/" auch Groß-/Kleinschreibung ist zu beachten....

Stefan
 
danke, genau deshalb hab ich gefragt!
gute Nacht... ich meld mich falls ich irgendwo nicht weiter komme :)
 
kommt beim chmod setzen per Konsole gar keine Rückmeldung?
Wenn ich die Datei dann danach ausführen möchte, erhalte die Meldung "File not Found"

ausführen wollte ich mit
"/volume1/Scripte/poweroff.sh" und chmod setzen mit
"chmod 755 /volume1/Scripte/poweroff.sh"
 
Wenn die Shell "File not Found" sagt, dann stimmt möglicherweise etwas mit der Schreibweise nicht. Denk daran, dass Groß- und Kleinschreibung von Unix unterschieden wird.
 
also poweroff funktioniert nun, aber beim Paket stoppen und starten hab ich probleme

ich nutze das Kommando:
Rich (BBCode):
/usr/syno/sbin/synoservicectl --stop JDownloader
und erhalte als Antwort
JDownloader failed to stop... error unknow [0x4000 servicectl_status.c:40]

den Packetnamen hab ich aus dem Ordner /var/packages/

Nachtrag:
Rich (BBCode):
/var/packages/JDownloader/scripts/start-stop-status start
und
Rich (BBCode):
/var/packages/JDownloader/scripts/start-stop-status stop
funktionieren, aber im Paketzentrum wird der Status des Pakets nicht aktualisiert ?!
 
Zuletzt bearbeitet:
Was sagt denn

/usr/syno/sbin/synoservicectl --list

Taucht da der JDownloader überhaupt auf? Wenn nicht, musst Du das Paket möglicherweise durch seine eigenen Start-/Stop-Skripte steuern.
 
Das kommt dabei raus
/usr/syno/sbin/synoservicectl: unrecognized option '--list'
Copyright (c) 2003-2014 Synology Inc. All rights reserved.

SynoService Control Tool Help (Version 5592)
Usage: synoservicectl
--help Show This Help
--start Start service.
--stop Stop service.
--restart Restart service.
--reload Send HUP signal to service..
--status Query status of service.
--push-arg JobName arg1 arg2 ...
Push arguments to specific job.
--dump-arg JobName
Dump arguments of the given job.
 
Sorry, ich bin da mit meinem alten DSM nicht auf dem aktuellen Stand. Und den Beitrag von goetz, in dem er synoservicectl anspricht, finde ich auch nicht mehr. Was liefert

/usr/syno/sbin/synoservicectl --status JDownloader

bzw.

/usr/syno/sbin/synoservicectl --dump-arg JDownloader
 
/usr/syno/sbin/synoservicectl --status JDownloader
JDownloader failed to get status... error unknow [0x4000 servicectl_status.c:40]
und
Rich (BBCode):
/usr/syno/sbin/synoservicectl --dump-arg JDownloader
ergibt keine Ausgabe
 
Dann arbeitet JDownloader offensichtlich inkompatibel zur Synology-Start-/Stop-Logik und müsste angepasst werden.
 
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