Cron Job wird nicht ausgeführt

Status
Für weitere Antworten geschlossen.

Creadle

Benutzer
Mitglied seit
23. Okt 2010
Beiträge
243
Punkte für Reaktionen
0
Punkte
16
Ich weiß nicht weiter, ich habe einen Cronjob hinzugefügt, er wird aber nicht gestartet, manuell gehts ohne Probleme?

Das Script was ausgeführt werden soll

Code:
#!/bin/sh
pushd /root
ORDNER="/volume1/music/radiosendungen/Planet-Night/"
Datum=$(date +%Y-%m-%d)
Pfad=$ORDNER$Datum
streamripper http://149.5.240.22:80/WR-DE-WR54 -d $Pfad -l 24000

Cron schaut so aus

AdminTool _1334428191581.jpg

Weiß nicht weiter, das Script wird nicht gestartet :(
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.156
Punkte für Reaktionen
403
Punkte
393
Hallo,
gib mal im Script den kompletten Pfad zu streamripper an.

Gruß Götz
 

Creadle

Benutzer
Mitglied seit
23. Okt 2010
Beiträge
243
Punkte für Reaktionen
0
Punkte
16
Code:
#!/bin/sh
pushd /root
ORDNER="/volume1/music/radiosendungen/Planet-Night/"
Datum=$(date +%Y-%m-%d)
Pfad=$ORDNER$Datum
/volume1/@optware/bin/streamripper http://149.5.240.22:80/WR-DE-WR54 -d $Pfad -l 24000

läuft leider immer noch nicht :(
 
Zuletzt bearbeitet:

Creadle

Benutzer
Mitglied seit
23. Okt 2010
Beiträge
243
Punkte für Reaktionen
0
Punkte
16
wie gesagt, wenn ich im terminal ausführe geht es tadellos, allerdings ist es dort erforderlich das ich vorher screen starte, damit weiter aufgenommen wird, auch wenn ich aus der Hauptsession raus bin
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
mach mal in Zeile 6:

echo /volume1/@optware/bin/streamripper http://149.5.240.22:80/WR-DE-WR54 -d $Pfad -l 24000 >/volume1/cronlog.txt

und poste uns dann mal den Inhalt von /volume1/cronlog.txt

Itari
 

Creadle

Benutzer
Mitglied seit
23. Okt 2010
Beiträge
243
Punkte für Reaktionen
0
Punkte
16
habe ich gemacht, allerdings hat es denn anscheinend, das es gar nicht gestartet wird. Weil keine Datei erzeugt wird

Startdatum+Zeit natürlich angepasst :)


bei normalen Aufruf mit

Code:
sh /volume1/music/radiosendungen/energy.sh
wird die Datei erzeugt mit diesen Inhalt

Code:
/volume1/@optware/bin/streamripper http://149.5.240.22:80/WR-DE-WR54 -d /volume1/music/radiosendungen/Planet-Night/2012-04-15 -l 24000
 
Zuletzt bearbeitet:

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
habe ich gemacht, allerdings hat es denn anscheinend, das es gar nicht gestartet wird. Weil keine Datei erzeugt wird

Dann funktioniert der Job in der crontab noch nicht richtig. Entweder das geht gar nicht (also auch keine anderen Jobs, weil die /etc/crontab irgendwelche Problem macht ... mach doch mal einen einfachen Testeintrag, wie 'date >/volume1/cronlog.txt') oder der crond (der die /etc/crontab abarbeitet) darf/kann nichts mit der Skriptdatei machen (hast einen chmod 777 auf das Skript gemacht? mal das pushd weg?)

Itari
 

Creadle

Benutzer
Mitglied seit
23. Okt 2010
Beiträge
243
Punkte für Reaktionen
0
Punkte
16
Also der Testeintrag funktioniert.

die Datei Energy.sh hat aber auf den ersten blick, die korrekten Berechtigungen, pushd habe ich entfernt


-rwxrwxrwx 1 admin administ 241 Apr 15 19:42 energy.sh

Edit, habe mal die gruppe und benutzer zu root geändert

-rwxrwxrwx 1 root root 199 Apr 15 19:50 energy.sh


Eventuell gehts
 

Creadle

Benutzer
Mitglied seit
23. Okt 2010
Beiträge
243
Punkte für Reaktionen
0
Punkte
16
Also, nun geht es, die Datei wird erzeugt und hat diesen Inhalt

Code:
/volume1/@optware/bin/streamripper http://149.5.240.22:80/WR-DE-WR54 -d /volume1/music/radiosendungen/Planet-Night/2012-04-15 -l 24000
Wenn ich aber nun wieder den Eintrag in die Datei entferne (>/volume1/cronlog.txt) passiert nichts, streamripper läuft nicht an
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
echo am Beginn der Zeile hast auch entfernt ???

Itari
 

Creadle

Benutzer
Mitglied seit
23. Okt 2010
Beiträge
243
Punkte für Reaktionen
0
Punkte
16
Vielen Dank, nun läuft es :)
Lag also nur an den eigentümer der Datei?
Ich meine diese hatte doch die richtige Berechtigung (777)?

Verstehe das gerade nicht so wirklich.

Grüße Creadle
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
ich vermute, dass die vom crond verwendete Shell, die ash, nichts mit pushd anfangen konnte ...

Itari
 

Creadle

Benutzer
Mitglied seit
23. Okt 2010
Beiträge
243
Punkte für Reaktionen
0
Punkte
16
Das pushd, habe ich allerdings erst gestern hinzugefügt, also dies nun auch nicht funktionierte, habe ich diesen Thema hier eröffnet
 

basti122303

Benutzer
Mitglied seit
23. Jan 2012
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
wie gesagt, wenn ich im terminal ausführe geht es tadellos, allerdings ist es dort erforderlich das ich vorher screen starte, damit weiter aufgenommen wird, auch wenn ich aus der Hauptsession raus bin

nacht für mich ferner den anschein das da was mit dem PATH nicht stimmt.
In Cronjobs wird immer wieder von Problemen in zusammenhang dessen berichtet, da path nicht oder falsch gesetzt wurde.

Gib doch mal im Terminal echo $PATH ein.
Dessen Ausgabe du dann nach der SHEBANG oben in den Script einfügst.

Code:
PATH="/bin/:/usr/bin/ ..."
 

Creadle

Benutzer
Mitglied seit
23. Okt 2010
Beiträge
243
Punkte für Reaktionen
0
Punkte
16
Hallo, habe davon auch heute gelesen.
Wenn ich aber die richtigen,kompletten Pfad zu Streamripper angebe (wie weiter oben von Itari vorgeschlagen), müsste es auch unabhängig von path ja funktionieren
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
In Cronjobs wird immer wieder von Problemen in zusammenhang dessen berichtet, da path nicht oder falsch gesetzt wurde.

ja das ist (leider) so, die PATH-Variable ist nicht so gesetzt wie in einer aktiven Shell-Session. Was aber kein wirkliches Problem ist, da man - wie bereits gesagt - immer vollständige Pfade nutzen kann (was ich auch jedem in Skripte immer empfehlen würde, weil es vor Denkfehlern schützt, die beim Lesen des Skriptes sonst entstehen könnten). Natürlich könnte man auch immer die PATH-Varibale im Skript setzten, was aber auch das Lesen/die Fehlersuche eines Skriptes erschwert, denn meist orientiert man sich an der geläufigen Vorstellung, wie man selbst die PATH-Variable setzt und nicht an den tatsächlichen Verhältnissen. Wobei diese Diskussion eher theoretisch ist für ein 5-6 zeiliges Skript ;)

Itari
 

Samy102

Benutzer
Mitglied seit
06. Apr 2010
Beiträge
40
Punkte für Reaktionen
0
Punkte
6
Moin moin,

ich hab ein ähnliches Problem. Und zwar werden bei mir zwar die crons erkannt und der cron möchte sie gerne starten, erstellt aber keine der dateien die ich zum testen in die crontab geschrieben habe. Ich habe es sowohl mit dem syno-cron als auch mit dem ipkg-cron probiert aber bei keinem wird etwas erstellt oder ausgeführt. Vielleicht kann mir ja einer helfen, bin da schon seit tagen dran und hab mir die Finger wundgegooglet.

Momentan versuche ich es hauptsächlich mit dem ipkg-cron. Dafür habe ich mir nach einer Anleitung (synology-cronjob-anlegen) im Ordner "/opt/var/cron/crontabs" eine Datei mit dem namen des Users (flux) angelegt und entsprechend die Rechte mit chmod und chown angepasst. In die Datei selbst kam
Rich (BBCode):
*/20     *       *       *       *       /opt/local/bin/flexget --cron
Laut der Anleitung soll damit alle 20 Minuten "flexget --cron" aufgerufen werden. Über cron geht es nicht. Wenn ich es manuell starte läuft alles.

Über "/opt/sbin/cron -x test" hab ich die ausgaben beobachtet
Rich (BBCode):
DS710> /opt/sbin/cron -x test
debug flags enabled: test
[2401] cron started
log_it: (root 2504) CMD (/opt/local/bin/flexget --cron)
Killed
Das "killed" kommt von mir weil ich nach dem Test den PRozess gekillt habe, nicht das sich jemand daran stört.

Egal ob ich "*/20 * * * * /opt/local/bin/flexget --cron" oder "*/20 * * * * root /opt/local/bin/flexget --cron" angebe passiert eigentlich nix ausser das cron diesen text alle 2 minuten anzeigt. flexget ist 777.
Wäre super wenn mir da jemand weiterhelfen könnte.

Und könnte mir vielleicht jemand erklären was in dem Tut das touch in der cron zeile macht? Habs einfach ausprobiert aber brachte nix und ich kann damit nix anfangen.
 
Zuletzt bearbeitet:

Samy102

Benutzer
Mitglied seit
06. Apr 2010
Beiträge
40
Punkte für Reaktionen
0
Punkte
6
Alles klar. Hab den Fehler gefunden und behoben. War natürlich ein anwenderfehler.
 

STdoubleU

Benutzer
Mitglied seit
28. Mai 2012
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Hallo, ich klinke mich hier mal direkt mit ein.
Ich bin seit kurzem stolzer Besitzer einer 212j. Jedoch bin ich mit den mitgelieferten Backupfunktionen etwas unzufrieden.

Daher habe ich mir wie im Wiki erläutert rsnapshot eingerichtet, welches im Skript run_rsnapshot_daily.sh ausgeführt werden soll:
Rich (BBCode):
#!/bin/bash
rsnapshot -c /root/scripts/rsnapshot_nutshell.conf daily
tail -n 10 /opt/var/log/rsnapshot | nail -s "DS212j Daily Backup Report" MEINE_MAIL_ADRESSE
Das manuelle Ausführen per Konsole klappte auch super.
Daher habe ich die crontab wie folgt eingerichtet:
Rich (BBCode):
#minute hour    mday    month   wday    who     command
18      22      *       *       2,5     root    /usr/syno/bin/synopkg chkupgradepkg
0       3       *       *       1-6     root    sh /root/scripts/run_rsnapshot_daily.sh
0       3       *       *       7       root    sh /root/scripts/run_rsnapshot_weekly.sh
0       0       *       *       *       root    /usr/sbin/ntpdate -b pool.ntp.org
Der erste und letzte Eintrag sind von der DS selbst eingetragen und die beiden mittleren von mir.
Und dann den cron-Daemon neu gestartet mit:
Rich (BBCode):
/usr/syno/etc/rc.d/S04crond.sh stop
/usr/syno/etc/rc.d/S04crond.sh start
Das klappt auch wunderbar, BIS ich meine DS212j neu starte.
Der Cron-Daemon läuft nach dem Neustart laut top, aber die Cronjobs werden scheinbar nicht mehr ausgeführt.
Wenn ich den Daemon manuell selbst neu starte so klappt es wieder.

Für Tipps wäre ich dankbar.

Gruß
Stefan
 
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