如何使用 cron 执行 livestreamer 命令?

如何使用 cron 执行 livestreamer 命令?

所以前几天我在家里的 Windows 7 旁边的一个分区中安装了 Ubuntu 14.04 LTS。由于我不能在家观看 YouTube 上的 Sailplane Grand Prix 直播,我决定使用 livestreamer (http://livestreamer.readthedocs.org/en/latest/) 使用其 -o 选项将其保存到文件中。

这工作正常(我认为 - 今天正在进行测试,我会在今晚回家时看看它是什么样子)除了我必须在早上离开家之前启动命令,并且广播只在中午左右开始,导致早上浪费一些带宽。

所以显然应该使用 cron 来安排它,对吧?但是,从 cron 运行它时它永远不会创建输出文件。我使用的 cron 行如下:

38 23 13 05 * ./getfaisgpstream 2> /home/me/getfaisgpstream.log

就像我说的,时间一天天过去,文件 /home/me/faisgp20140513 并没有像从终端运行 livestreamer 时那样出现。我知道 crontab 行需要以换行符结尾的问题,我故意在文件底部留了一个空行来解决这个问题。

我使用 crontab -e 来更改 cron 文件。

我在“getfaisgpstream.log”中得到的输出是:

./getfaisgpstream: 6: ./getfaisgpstream: livestreamer: not found

文件“./getfaisgpstream”的内容是:

echo 
echo ======= livestreamer script running to get FAI SGP 2014 stream and save it in home: [`date`]
echo 

while true; do 
  livestreamer --hds-timeout 300 --hls-timeout 300 --rtmp-timeout 300 --http-timeout 300 --http-stream-timeout 300 -fo /home/me/Videos/faisgp`date +%Y%m%d` http://www.youtube.com/watch?v=xmy5VHAvNMg best
  echo ======= livestreamer terminated, restarting [`date`]
  echo; done

echo 
echo ======= livestreamer script exiting [`date`]
echo 

是的,这让它变得太强大了 - 但无论如何,我现在正在寻找一个简单的破解方法,可以解决这个问题,以便明天录制广播。

答案1

我找到了我的问题的答案:cron 没有获得与您的终端相同的环境变量。

它肯定不会将您的主文件夹作为起始工作目录。因此,说...

./getfaisgpstream

...不起作用。您需要做的是:

/home/me/getfaisgpstream

因为它也没有获得与您在终端中相同的路径,所以说......

livestreamer --hds-timeout 300 ...

... 也不起作用。您需要做的是:

/usr/local/bin/livestreamer

相关内容