Crontab startet nicht

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Crontab startet nicht

Beitrag von Richard » 18.03.2017 10:43:58

Hallo,

ich versuche mir auf meinem Raspberry Pi mit Raspbian Jessy einen Crontab anzulegen, der zu bestimmten Zeiten ein Skript ausführt das seinerseits Videos von einemYouTube-Channel herunterlädt. Das Skript liegt im Benutzerverzeichnis und sieht so aus:

Code: Alles auswählen

youtube-dl -o "/media/usb/youtube-dl-test/%(title)s.%(ext)s" --reject-title C-Bas --dateafter 20170314 --download-archive .youtube-dl-liste.txt --ignore-errors -w --restrict-filenames YOUTUBE_URL
Das Script ist ausführbar und es läuft wenn ich es mit ./youtube-dl.sh starte. Der Crontab sieht so aus:

Code: Alles auswählen

@reboot /home/pi/.nzbget/nzbget -D
38 23 * * * pi /home/pi/youtube-dl.sh > /home/ich/youtube-dl-log.txt
Der erste Eintrag funktioniert, NZBGet wird bei jedem Bootvorgang gestartet. Die Zeiten für den zweiten Eintrag wurden natürlich entsprechend angepasst, der DL startet aber nie. Die Log-Datei wird angelegt, aber ohne Inhalt. Ich hab es auch ohne den Eintrag 'pi' versucht, gleiches Ergebnis. Es wird der Crontab des Benutzers verwendet, nicht der von root.

Teste ich z. B. das hier im Crontab

Code: Alles auswählen

38 23 * * * pi echo JA > text
wird zwar die Textdatei erstellt, die ist aber leer. Der Aufruf über die SSH-Konsole geht.

Hab ich hier etwas falsch eingetragen? Am fehlenden Desktop sollte es ja nicht liegen, da dürfte es auch über die SSH-Konsole nicht gehen.

Richard

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Crontab startet nicht

Beitrag von rendegast » 18.03.2017 12:07:04

Die Ausgabe-Umleitung mal in das Skript packen?

38 23 * * * pi /home/pi/youtube-dl.sh > /home/ich/youtube-dl-log.txt
Darf pi denn nach /home/ich/ schreiben?

Der Abbruch des Skripts könnte von einer 'set -e'-Einstellung des cron durch den Schreibfehler kommen.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

breakthewall
Beiträge: 507
Registriert: 30.12.2016 23:48:51

Re: Crontab startet nicht

Beitrag von breakthewall » 18.03.2017 12:48:01

Deinem Shellscript fehlt eine Shebang-Line, wie #! /bin/sh am Anfang. Am besten wäre es, wenn den gesamten Inhalt der Crontab posten würdest, um zu sehen ob hier abseits des Shellscripts weitere Probleme bestehen.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Crontab startet nicht

Beitrag von rendegast » 18.03.2017 14:05:12

breakthewall hat geschrieben: Deinem Shellscript fehlt eine Shebang-Line, wie #! /bin/sh am Anfang.
cron benutzt wohl standardmäßig /bin/sh, zumindest habe ich hier erstmal keine Probleme ohne shebang.

... --restrict-filenames YOUTUBE_URL
"YOUTUBE_URL" ist hier ein expliziter Platzhalter oder sollte eine Variable "$YOUTUBE_URL" sein?
--download-archive .youtube-dl-liste.txt
Eventuell mit Pfad angeben.

Den Aufruf mit '--verbose' anreichern? '--ignore-errors' erstmal entfernen?
Vielleicht mails von cron?
<->
Im Skript die Umleitung '2>&1' hinzufügen, um Fehlermeldung in die youtube-dl-log.txt zu bekommen?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Crontab startet nicht

Beitrag von Richard » 19.03.2017 00:49:58

Problem gefunden. Mit -v wurde in die Log-Datei eingetragen, dass er den Befehl 'youtube-dl' nicht gefunden hat. Ich hab yt-dl manuell in /usr/local/bin kopiert, es wird in der Konsole problemlos erkannt. Hab es jetzt mal mit einem stark vereinfachten Skript versucht und es geht wenn ich den kompletten Pfad angebe. Test mit dem langen Aufruf mach ich noch.

Aber merkwürdig, dass er das nicht findet.

breakthewall
Beiträge: 507
Registriert: 30.12.2016 23:48:51

Re: Crontab startet nicht

Beitrag von breakthewall » 19.03.2017 22:48:48

rendegast hat geschrieben:cron benutzt wohl standardmäßig /bin/sh, zumindest habe ich hier erstmal keine Probleme ohne shebang.
Richtig. Nur wenn man sonst auch die Shebang benutzen sollte, dann wäre es doch eher verwirrend hier darauf zu verzichten, auch wenn es ohne ginge.
Richard hat geschrieben:Problem gefunden. Mit -v wurde in die Log-Datei eingetragen, dass er den Befehl 'youtube-dl' nicht gefunden hat. Ich hab yt-dl manuell in /usr/local/bin kopiert, es wird in der Konsole problemlos erkannt. Hab es jetzt mal mit einem stark vereinfachten Skript versucht und es geht wenn ich den kompletten Pfad angebe. Test mit dem langen Aufruf mach ich noch.

Aber merkwürdig, dass er das nicht findet.
Was bedeutet manuell kopiert? Für gewöhnlich wird youtube-dl in /usr installiert, und an keinem anderen Ort, ausser man manipuliert das bei der Installation. Und Cron arbeitet mit einer PATH-Variable um Programme zu finden, was dann schlecht möglich ist wenn youtube-dl in einem nicht standardmäßigen Verzeichnis liegt.

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Crontab startet nicht

Beitrag von Richard » 24.03.2017 13:58:13

Ich hab es so installiert wie hier https://wiki.ubuntuusers.de/youtube-dl/ ... be#Manuell beschrieben. Die systemweite Installation. Spätestens nach dem Reboot wird es erkannt auch ohne Eingabe des ganzes Pfades, vom Cron aber nicht. Da geht es nur mit Pfad.

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Crontab startet nicht

Beitrag von scientific » 25.03.2017 13:55:36

Dann nimmt man in cron halt den ganzen Pfad.
systemd verlangt auch nach dem gesamten Pfad, da es dort keine PATH-Variable im Environment gibt.

Lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Antworten