crontab 中的 youtube-dl 显示“[Errno 13] 权限被拒绝”

crontab 中的 youtube-dl 显示“[Errno 13] 权限被拒绝”

我使用的是 Debian。我尝试为 youtube-dl 创建一个 cron 作业。它由一个每日脚本组成,从午夜开始。当我手动执行脚本时,一切都运行正常。但是,当我使用 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 (组)
  • nextcloudroot属于该组www-data
  • 并且目标文件夹(/media/Video/)的权限为770(所有者/组组可以读/写/执行,其他人不能执行任何操作)。

你能帮帮我吗?我看过类似的主题,但解决方案没有成功,因为问题并不完全相同。非常感谢。

编辑(旧状态):到目前为止,我已尝试按照规则(删除/ 组所拥有的扩展名和脚本)将脚本 ( youtube-dl-script.sh) 复制到文件夹中。使用 检查后,我得到了以下输出:/etc/crontab.daily.shrootrootcat /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

好的,我找到了解决方案:

首先,我将脚本移至/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 也按预期工作!

相关内容