youtube-dl в crontab отображает "[Errno 13] Отказано в доступе"

youtube-dl в crontab отображает "[Errno 13] Отказано в доступе"

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

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

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

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(владелец/группа могут читать/писать/выполнять, остальные не могут ничего делать).

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

EDIT (старый статус):до сих пор я пытался скопировать свой скрипт ( 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, чтобы посмотреть, сработает ли это.

EDIT 2 (текущий статус): так что это не работает. Я даже сделал chmod 755так, чтобы у него были такие же разрешения, как у всех остальных скриптов, и перезагрузил сервер, но это не работает.

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

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

решение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 работает как и ожидалось!

Связанный контент