Scripts ausführen

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

Whitesheep

Benutzer
Registriert
29. Mai 2009
Beiträge
81
Reaktionspunkte
2
Punkte
14
Hallo erst mal,

hoffe das ich hier richtig gelandet bin, wenn nicht dann sagt mir bitte wo der Post hin muss :)

Also geht um folgendes...
Habe auf meiner DS viele Scripts liegen die mir verschiedene Sachen erleichtern (z.B. Playlisten neu schreiben) würde diese Scripts gerne ausführen können ohne das ich mich per SSH/TELNET an der DS anmelden muss. Anmeldung an der Weboberfläche ist okay, weil ich so und so immer über die Audiostation Music höre.

Habe versucht aus einem Post wo es um crontab Weboberfläche ging (http://www.synology-forum.de/showthread.html?t=2217&highlight=crontab) den quelltext raus zu suchen den ich für mich bräuchte aber ich werde leider aus dem PHP nicht schlau.

Kann mir jemand weiterhelfen?
 
Danke erst mal für die Antworten habe mir jetzt an Hand des Stichpunktes exec() alles rausgesucht was ich gebraucht habe :rolleyes:

Nur jetzt habe ich ein Problem die von der HP gestarteten Scripts laufen unter dem User "nobody" Problem daran ist um z.B. ein ping auszuführen brauche ich root rechte.
Wie bekomme ich es hin das das Script mit root Rechten läuft?

sudo gibt es ja auf der DS nicht und su kann von nobody nicht ausgeführt werden.:(

Habt ihr noch irgendwelche anderen Ideen :confused:
 
su kann nicht ausgeführt werden, weil su voraussetzt, dass eine gültige Shell für den User (in dem Fall nobody) in /etc/passwd eingetragen ist. Zudem kann nur ein Prozess der unter root läuft seine Rechte ändern, nobody kann niemals zu root werden.

Für dein Vorhaben würde ich dir php via ipkg empfehlen. Dann kannst du einen cronjob anlegen, der das php Script (ggf auch unter root) via Kommandozeileninterpreter von php aufruft. Das default PHP von Synology hat leider den Kommandozeileninterpreter nicht mit dabei.
Mehr zu ipkg findest du in unserem Wiki.
 
Das default PHP von Synology hat leider den Kommandozeileninterpreter nicht mit dabei.

Bei mit ist ein Synology-php-Interpreter unter /usr/bin und ein IPKG-php-Interpreter unter /opt/bin

Rich (BBCode):
Synology> ll /usr/bin/php
-rwxr-xr-x    1 root     root      6935604 Jan 28 09:56 /usr/bin/php
Synology> ll /opt/bin/php
-rwxr-xr-x    1 root     root      2864812 Apr 18  2009 /opt/bin/php

Itari
 
Weisst du seitwann der Interpreter bei Synology mitdabei ist? Ich frage mich gerade wie lange ich das wohl schon übersehen habe ;)
 
Weisst du seitwann der Interpreter bei Synology mitdabei ist? Ich frage mich gerade wie lange ich das wohl schon übersehen habe ;)

Nicht so genau. Aber den, den ich haben, der ist seit dem 28. Januar 2010 dabei :D

Itari
 
Hey ihr,

also habe jetzt mal bei mir geschaut habe kein /opt auch nicht nachdem ich die neuste Firmware drauf gemacht habe.

Hast du das vieleicht doch selber nach installiert ?
 
/opt hast du nur wenn du ipkg installierst
Wie itari aber schrieb scheint der php Interpreter nun auch mit der Firmware installiert zu werden. Also brauchst du ipkg php eigentlich nicht mehr. Du kannst dem php Interpreter direkt den Pfad zu einem php Script übergeben (auf der Kommandozeile) und der führt es dann aus. Wenn jetzt also der Aufruf von root erfolgt (z.b. via cron), dann hat das aufgerufene php Script ebenfalls root Rechte
 
ah okay Post falsch verstanden gehabt ;)
Aber wenn man es anständig liest leuchtet es ein ^^

Wenn ich das richtig verstanden habe (was ich hoffe :)) dann wollt ihr das Script nicht direkt ausführen sondern ein cronjob starten der das Script ausführt. Damit die benötigten Rechte durch die cron mitgegeben werden.

Kann mir eventuell einer von euch für dieses Vorhaben eine kleine Anleitung geben oder in Link zu einem Post wo es schon mal gemacht wurde?
Weil ich habe noch nie etwas mit php gemacht und habe im Moment keine Idee wie ich das Ganze in code umsetzen soll.
 
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