youtube-dl en un crontab muestra "[Errno 13] Permiso denegado"

youtube-dl en un crontab muestra "[Errno 13] Permiso denegado"

Estoy en Debian. Intento hacer un trabajo cron para youtube-dl. Consiste en un guión diario, que comienza a medianoche. Cuando ejecuto el script manualmente, todo funciona perfectamente. Sin embargo, cuando uso el trabajo cron, aparece un error como este:

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

El cron es el siguiente:

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

Entiendo que hay un problema de permisos en alguna parte, pero no sé cómo solucionarlo.

Para tu información :

  • propietario/grupo de la carpeta de destino ( /media/Video/) es: www-data(propietario), wwww-data (grupo)
  • propietario/grupo del script es: nextcloud(propietario), root (grupo)
  • nextcloudy rootpertenecer al grupowww-data
  • y el /media/Video/permiso de la carpeta de destino ( ) es 770(el propietario/grupo puede leer/escribir/ejecutar, otros no pueden hacer nada).

Podrías ayudarme, por favor ? He visto un tema similar pero la solución no fue exitosa ya que el problema no era exactamente el mismo. Muchas gracias.

EDITAR (estado antiguo):Hasta ahora, he intentado copiar mi script ( youtube-dl-script.sh) en /etc/crontab.dailyla carpeta, respetando las reglas (eliminando la .shextensión y el script propiedad de root/group root). Y consultar con cat /etc/crontabme da este resultado:

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

Entonces, normalmente, debería haber funcionado a las 6:25 a. m. de esta mañana, ¡pero no fue así!

He descubierto que otros scripts tienen -xcomo bit final, por eso, he hecho chmod +x youtube-dl-script.

  • Antes de eso, el guión es -rwxr-x--- 1 root root 1682 juin 16 02:24 /etc/cron.daily/youtube-dl-script.

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

Ahora tengo que esperar hasta mañana a las 6:25 a.m. para ver si esto funciona.

EDITAR 2 (estado actual): entonces no funciona. Incluso lo hice chmod 755para tener los mismos permisos que todos los demás scripts y reinicié el servidor, pero no funciona.

Lo que es muy extraño es que si lo hago run-parts --test /etc/cron.daily, mi script aparece en la lista, por lo que debería ejecutarlocron.daily

Por favor, si tienes alguna idea, no dudes en informarme. Gracias.

Respuesta1

Bien, he encontrado la solución:

Primero, moví el script /etc/cron.hourlya porque no estaba anacroninstalado y porque me gustaría usarlo cada hora. Pero no funcionó.

Luego lo ejecuté sudo service cron statussolo para verificar si el servicio cron estaba activo. Lo era, pero también encontré una advertencia interesante, algo así como your token was expired, renew your token. Así que busqué este mensaje de error en Internet y descubrí que era necesario renovar mi contraseña de root; de lo contrario, cron no funcionaría correctamente. Para verificar esto, tuve que usar sudo chage -l rootel cual mostraba que mi contraseña de root era expired.

Por lo tanto, renové mi contraseña de root sudo passwd rooty la verifiqué nuevamente, sudo chage -l rootlo que mostró que la contraseña ahora está bien. ¡Ahora todo está funcionando bien y cron funciona como se esperaba!

información relacionada