, я использую 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
Пожалуйста, если у вас есть идеи, не стесняйтесь сообщить мне. Спасибо.
Хорошо, я нашел решение:
Во-первых, я переместил скрипт в /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 работает как положено!