youtube-dl в crontab отображает «[Errno 13] Permission denied»

, я использую 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 / group 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

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

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