Cron作业使用数据库结果

时间:2013-03-09 04:53:55

标签: mysql variables ffmpeg cron

我需要帮助来创建一个cron作业脚本。基本上,我想抓住下一个计划的项目并通过ffmpeg运行它来流。这将是mysql查询(我使用PHP变量来指示应该去哪里 - 我实际上并不知道变量在cron作业中是如何工作的):

SELECT show.file FROM show, schedule
WHERE channel = 1 AND start_time <= $current_time;

这将是ffmpeg命令:

ffmpeg -re -i $file http://127.0.0.1:8090/feed.ffm

如何创建执行这些命令的cron作业?

1 个答案:

答案 0 :(得分:1)

首先,你不需要将当前时间传递给你的select语句,只需使用CURRENT_TIME

SELECT `show.file` 
  FROM show, schedule 
 WHERE channel = 1 AND start_time <= CURRENT_TIME;

根据您实际的表格DDL ,您可能需要进行一些转换以正确比较时间值。

假设您的查询正确并返回 ONLY ONE filename ,您可以使用mysql执行查询,将结果输出到预定义文件中并使用&&链接ffmpeg命令< / p>

mysql -u user -ppassword dbname -sN -e \
 "SELECT show.file \
 FROM show, schedule \
 WHERE channel = 1 AND start_time <= CURRENT_TIME" > /tmp/cur_show_file && \
 ffmpeg -re -i /tmp/cur_show_file http://127.0.0.1:8090/feed.ffm