【问题标题】:Can not execute script from crontab - no such file or directory无法从 crontab 执行脚本 - 没有这样的文件或目录
【发布时间】:2014-05-23 07:07:25
【问题描述】:

要求 Crontab 每 6 小时执行一次脚本 0 */6 * * * /usr/bin/ffmpeg.restart

ffmpeg.restart 检查所有 ffmpeg 进程(6-8 之间),将它们全部杀死并执行 /usr/bin/ffmpeg.start

在 ffmpeg.start 我有以下命令

./ffmpeg -i IP 选项输出

./ffmpeg -i IP 选项输出

./ffmpeg -i IP 选项输出

我遇到的问题是,当我从除 /usr/bin 之外的任何其他目录执行 ./ffmpeg.restart 时,它告诉我找不到 ./ffmpeg。

我确定我在这里遗漏了一些东西。我什至在 ffmpeg.start 中尝试了“cd /usr/bin”,但它仍然告诉我它在目录中找不到它。手动完成所有工作都很好。它在看哪个目录?

【问题讨论】:

  • 尝试which ffmpeg获取路径
  • 从文件中删除前导./;而是在ffmpeg.start 中提供ffmpeg 的完整路径。
  • ffmpeg 在 /usr/bin
  • 如果您希望它是可移植的(如不硬编码绝对目录),您必须确定相对于您的 ffmpeg.start 脚本的路径,请参阅stackoverflow.com/questions/630372/…

标签: linux crontab


【解决方案1】:

正如 devnull 所说。问题出在 ./ ... 有几个选项可以解决这个问题,包括文件开头的 cd /usr/bin 或从命令调用中删除 ./。最安全的是在脚本中提供 ffmpeg 的完整路径

/usr/bin/ffmpeg -i IP bunch-of-options OUTPUT
/usr/bin/ffmpeg -i IP bunch-of-options OUTPUT
/usr/bin/ffmpeg -i IP bunch-of-options OUTPUT

【讨论】:

    猜你喜欢
    • 2017-08-06
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2017-07-07
    • 2020-06-28
    • 2017-05-02
    • 2017-09-03
    • 1970-01-01
    相关资源
    最近更新 更多