youtube-dl in einer Crontab zeigt „[Errno 13] Zugriff verweigert“ an

youtube-dl in einer Crontab zeigt „[Errno 13] Zugriff verweigert“ an

Ich verwende Debian. Ich versuche, einen Cron-Job für youtube-dl zu erstellen. Er besteht aus einem täglichen Skript, das um Mitternacht beginnt. Wenn ich das Skript manuell ausführe, funktioniert alles einwandfrei. Wenn ich jedoch den Cron-Job verwende, erhalte ich einen Fehler wie diesen:

ERROR: unable to open for writing: [Errno 13] Permission denied: '/media/Video/...

Der Cron ist der folgende:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
@daily /usr/local/bin/youtube-dl-script.sh >> /var/mail/nextcloud 2>&1

Ich verstehe, dass es irgendwo ein Berechtigungsproblem gibt, aber ich weiß nicht, wie ich es lösen kann.

Zu Ihrer Information :

  • Besitzer/Gruppe des Zielordners ( /media/Video/) ist: www-data(Besitzer), wwww-data (Gruppe)
  • Besitzer/Gruppe des Skripts ist: nextcloud(Besitzer), root (Gruppe)
  • nextcloudund rootgehöre zur Gruppewww-data
  • und die Berechtigung für den Zielordner ( /media/Video/) lautet 770(Besitzer/Gruppe kann lesen/schreiben/ausführen, andere können nichts tun).

Können Sie mir bitte helfen? Ich habe ein ähnliches Thema gesehen, aber die Lösung war nicht erfolgreich, da das Problem nicht genau dasselbe war. Vielen Dank.

EDIT (alter Stand) :bisher habe ich versucht, mein Skript ( youtube-dl-script.sh) in /etc/crontab.dailyden Ordner zu kopieren, indem ich die Regeln beachtet habe (die .shErweiterung und das Skript entfernt habe, das der root/-Gruppe gehört root). Und die Überprüfung mit cat /etc/crontabgibt mir diese Ausgabe:

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

Normalerweise hätte es heute Morgen um 6:25 Uhr funktionieren sollen, aber das tat es nicht!

Ich habe festgestellt, dass andere Skripte -xals letztes Bit haben, deshalb habe ich Folgendes erstellt chmod +x youtube-dl-script.

  • Davor ist das Skript -rwxr-x--- 1 root root 1682 juin 16 02:24 /etc/cron.daily/youtube-dl-script.

  • Jetzt ist es -rwxr-x--x 1 root root 1682 juin 16 02:24 /etc/cron.daily/youtube-dl-script.

Jetzt muss ich bis morgen 6:25 Uhr warten, um zu sehen, ob es funktioniert.

BEARBEITEN 2 (aktueller Status): also es funktioniert nicht. Ich habe es sogar chmod 755so eingerichtet, dass es die gleichen Berechtigungen hat wie alle anderen Skripte, und ich habe den Server neu gestartet, aber es funktioniert nicht.

Was sehr seltsam ist, ist, dass, wenn ich das tue run-parts --test /etc/cron.daily, mein Skript aufgelistet wird, also sollte es ausgeführt werden voncron.daily

Wenn Sie eine Idee haben, teilen Sie es mir bitte mit. Vielen Dank.

Antwort1

OK, ich habe die Lösung gefunden:

Ich habe das Skript zunächst nach verschoben /etc/cron.hourly, da dort keines anacroninstalliert war und ich es gerne stündlich nutzen wollte. Funktioniert hat es aber nicht.

Dann habe ich es ausgeführt, sudo service cron statusum zu prüfen, ob der Cron-Dienst aktiv war. Das war er, aber ich habe auch eine interessante Warnung gefunden, so etwas wie your token was expired, renew your token. Also habe ich im Internet nach dieser Fehlermeldung gesucht und festgestellt, dass mein Root-Passwort erneuert werden musste, da Cron sonst nicht richtig funktionieren würde. Um dies zu prüfen, musste ich verwenden, sudo chage -l rootwas zeigte, dass mein Root-Passwort lautete expired.

Daher habe ich mein Root-Passwort mit erneuert sudo passwd rootund noch einmal mit geprüft, sudo chage -l rootwas zeigte, dass das Passwort nun in Ordnung ist. Jetzt läuft alles einwandfrei und Cron funktioniert wie erwartet!

verwandte Informationen