youtube-dl в crontab отображает & ldquo; [Errno 13] В доступе отказано & rdquo;

Я нахожусь на Debian. Я пытаюсь сделать работу cron для youtube-dl. Он состоит из ежедневного сценария, начиная с полуночи. Когда я выполняю скрипт вручную, все работает отлично. Однако, когда я использую задание cron, у меня появляется такая ошибка:

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

Cron выглядит следующим образом:

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

Я понимаю, что где-то есть проблема с разрешениями , но я не знаю, как это решить.

Для вашей информации:

  • владелец / группа целевой папки (/media/Video/): www-data (владелец), wwww-data (группа)
  • владелец / группа сценария: nextcloud (владелец), root (группа)
  • nextcloud и root относятся к группе www-data
  • и разрешение целевой папки (/media/Video/) - 770 (владелец / группа может читать, записывать и выполнять, другие не могут ничего делать).

Пожалуйста, не могли бы вы мне помочь? Я видел похожую тему, но решение не увенчалось успехом, поскольку проблема не была точно такой же. Большое спасибо.

РЕДАКТИРОВАТЬ (старый статус): до сих пор я пытался скопировать свой скрипт (youtube-dl-script.sh) в папку /etc/crontab.daily, соблюдая правила (удалив расширение .sh и сценарий, принадлежащий root / группа root). И проверка с помощью cat /etc/crontab дает мне такой вывод:

# 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 )
#

Итак, обычно это должно было сработать в 6:25 утра, но это не так!

Я обнаружил, что другие сценарии имеют -x в качестве финального бита, поэтому я сделал chmod +x youtube-dl-script.

  • До этого сценарий был -rwxr-x--- 1 root root 1682 juin 16 02:24 /etc/cron.daily/youtube-dl-script.

  • Теперь это -rwxr-x--x 1 root root 1682 juin 16 02:24 /etc/cron.daily/youtube-dl-script.

Теперь я должен подождать до 6:25 утра до завтра, чтобы проверить, работает ли это.

РЕДАКТИРОВАТЬ 2 (текущий статус): , поэтому он не работает. Я даже сделал chmod 755 для того, чтобы иметь те же разрешения, что и для всех других сценариев, и я перезагрузил сервер, но он не работает.

Что очень странно, так это то, что если я сделаю run-parts --test /etc/cron.daily, мой сценарий будет указан в списке, так что он должен быть запущен cron.daily

Пожалуйста, если у вас есть идеи, не стесняйтесь сообщить мне. Спасибо.

1
задан 19 June 2019 в 20:18

1 ответ

Хорошо, я нашел решение:

Во-первых, я переместил скрипт в /etc/cron.hourly, потому что не было установлено anacron, и потому что я хотел бы используйте это каждый час. Но это не сработало.

Затем я запустил sudo service cron status просто чтобы проверить, была ли активна служба cron. Это было, но я также нашел интересное предупреждение, что-то вроде your token was expired, renew your token. Поэтому я искал это сообщение об ошибке в Интернете и обнаружил, что мой пароль root необходимо обновить, иначе cron не будет работать правильно. Чтобы проверить это, мне пришлось использовать sudo chage -l root, который показал, что мой пароль root был expired.

Поэтому я обновил свой пароль root с помощью sudo passwd root, и я снова проверил с помощью sudo chage -l root, который показал, что пароль теперь в порядке. Теперь все работает нормально, а cron работает как положено!

0
ответ дан 19 June 2019 в 20:18

Другие вопросы по тегам:

Похожие вопросы: