脚本不会在cron下运行,但运行手动(Script does not run under cron

2019-10-17 02:15发布

我有一个脚本,开发者写了我执行主要与ffmpeg的各种功能。 当我运行该脚本使用手动

sh /home/site/rawvids/encode.sh > /home/site/rawvids/log.txt

该脚本运行正常,但当它穿过的cron它失败,错误代码127

有任何想法吗?

ls -l的脚本显示:

-rwxrwxrwx 1个网站,没有人3786年7月23 17:07 /home/site/rawvids/encode.sh*

Answer 1:

错误127的意思是“找不到命令”。 这很可能是你在脚本的一些命令是不是在运行cron (你可以看到什么的cron的PATH,如果你看一下/etc/crontab )。

您可以在shell检查您的当前位置:

$ echo $PATH

然后将该路径复制到脚本的开头:

PATH=... 

相反的...你必须写你已经(使用前面得到了线echo $PATH )。

还要检查,如果你有shebang行#!/bin/sh在脚本的开头。 这是进口,如果你没有启动脚本sh在命令行。

同时这将是巨大的,如果你能告诉我们从线/etc/crontab运行该脚本。



Answer 2:

最有可能你要么因未对cron的设置环境变量(我不知道,如果使用cron的任何?)或权限cron是下运行是错误的。 如果你喜欢管道的输出在cron的版本,它得到任何输出?



Answer 3:

同...,以及我只是能站在这些路径的问题,我成立了一个符号链接ffprobe路径或任何缺失,像

ln -s /usr/local/bin/ffprobe /home/ec2-user/.rvm/rubies/ruby-2.3.0/bin/ffprobe



文章来源: Script does not run under cron but runs manually
标签: linux cron