youtube-dl em um crontab exibe "[Errno 13] Permissão negada"

youtube-dl em um crontab exibe "[Errno 13] Permissão negada"

Estou no Debian. Eu tento fazer um cron job para o youtube-dl. Consiste em um roteiro diário, com início à meia-noite. Quando executo o script manualmente, tudo funciona perfeitamente. No entanto, quando uso o cron job, recebo um erro como este:

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

O cron é o seguinte:

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

Entendo que há um problema de permissão em algum lugar, mas não sei como resolvê-lo.

Para a sua informação :

  • proprietário/grupo da pasta de destino ( /media/Video/) é: www-data(proprietário), wwww-data (grupo)
  • proprietário/grupo do script é: nextcloud(proprietário), root (grupo)
  • nextcloude rootpertence ao grupowww-data
  • e a /media/Video/permissão da pasta de destino () é 770(o grupo proprietário/grupo pode ler/gravar/executar, outros não podem fazer nada).

Por favor, você poderia me ajudar ? Já vi um tópico semelhante, mas a solução não foi bem-sucedida porque o problema não era exatamente o mesmo. Muito obrigado.

EDITAR (status antigo):até agora tentei copiar meu script ( youtube-dl-script.sh) na /etc/crontab.dailypasta, respeitando as regras (removendo a .shextensão e o script de propriedade de root/ group root). E verificar com cat /etc/crontabme dá esta saída:

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

Então, normalmente, deveria ter funcionado às 6h25 desta manhã, mas não funcionou!

Descobri que outros scripts têm -xcomo final, portanto, criei arquivos chmod +x youtube-dl-script.

  • Antes disso, o script é -rwxr-x--- 1 root root 1682 juin 16 02:24 /etc/cron.daily/youtube-dl-script.

  • Agora, é -rwxr-x--x 1 root root 1682 juin 16 02:24 /etc/cron.daily/youtube-dl-script.

Agora tenho que esperar até amanhã às 6h25 para ver se isso funciona.

EDITAR 2 (status atual): então não funciona. Até fiz chmod 755para ter as mesmas permissões de todos os outros scripts e reiniciei o servidor, mas não funciona.

O que é muito estranho é que, se eu fizer isso run-parts --test /etc/cron.daily, meu script será listado e deverá ser executado porcron.daily

Por favor, se você tiver alguma ideia, fique à vontade para me informar. Obrigado.

Responder1

OK, encontrei a solução:

Primeiro mudei o script para /etc/cron.hourly, porque não havia nenhum anacroninstalado e porque gostaria de usá-lo a cada hora. Mas não funcionou.

Então executei sudo service cron statusapenas para verificar se o serviço cron estava ativo. Foi, mas também encontrei um aviso interessante, algo como your token was expired, renew your token. Então procurei por essa mensagem de erro na Internet e descobri que minha senha root precisava ser renovada, caso contrário o cron não funcionaria corretamente. Para verificar isso, tive que usar sudo chage -l rooto qual mostrava que minha senha de root era expired.

Portanto, renovei minha senha root sudo passwd roote verifiquei novamente, sudo chage -l rooto que mostrou que a senha agora está OK. Agora tudo está funcionando bem e o cron está funcionando conforme o esperado!

informação relacionada