脚本在执行时运行良好,但无法从 cronjob 中运行

脚本在执行时运行良好,但无法从 cronjob 中运行

我有一个名为“record.sh”的脚本,它看起来像:

#!/bin/bash
/usr/bin/vlc -vvv rtsp://admin:[email protected]:554/ch0_0.h264 --sout=file/ts:Videos/VideoCaptures/recording-$(date +"%Y-%m-%d_%H-%M-%S").mp4 -I dummy --stop-time=3600 vlc://quit
exit

还可以使用以下命令使其可执行:chmod +x record.sh

现在真正的问题是。当我双击脚本时,它执行得很好!但是当我创建一个 cronjob(crontab -e)时

*/60 * * * * /home/pi/record.sh

它根本就不会运行。

甚至以下 cronjob 也不起作用;

*/60 * * * * /usr/bin/vlc -vvv rtsp://admin:[email protected]:554/ch0_0.h264 --sout=file/ts:Videos/VideoCaptures/recording-$(date +"%Y-%m-%d_%H-%M-%S").mp4 -I dummy --stop-time=3600 vlc://quit

我究竟做错了什么?

答案1

--sout=file/ts:Videos/...-- 假设 Videos 目录位于您的主目录中。cron 的当前目录是/。您需要

--sout=file/ts:$HOME/Videos/...

此外,百分号在 crontab 中很特殊,需要进行转义:

recording-$(date +"\%Y-\%m-\%d_\%H-\%M-\%S").mp4

检查你的crontab(5)手册页。

相关内容