第二天使用“at”命令定时录制视频,只需执行一次

第二天使用“at”命令定时录制视频,只需执行一次

我尝试过 1) start and stream video to vlc2) record the same video stream to a file that starts at 05:45 am the next day一切正常,但开始时间不是第二天早上 05:45 开始,而是立即开始。我错过了什么?

bash -c "streamlink --stdout https://www.youtube.com/watch?v=XOacA3RYrXk 720p | tee /tmp/water_vid/water_video-$(date +"%H:%M_%m-%d-%Y").mkv | vlc -" | at 05:45 am

答案1

您的语法相当于:

notify-send "Hello" | at now +1 minute

其中notify-send命令将立即执行,并且不会将任何内容传送到 的标准输入at。通过使用atq获取最新的作业编号,at -c <job-number>我们可以看到实际将执行的内容。因此,对上述作业的分析将不会显示任何内容:

$ at -c "$(atq | sort | awk 'END{print $1}')" | grep 'Hello'

正确的语法是使用echo将命令输出为字符串,然后通过管道传输到命令的标准输入at

echo 'notify-send "Hello"' | at now +1 minute

在这种情况下,最新作业的分析输出将会有所不同:

$ at -c "$(atq | sort | awk 'END{print $1}')" | grep 'Hello'
notify-send "Hello"

答案2

看了 man at,我假设你应该指定 5:45am,不带空格。它还允许你指定明天,所以我会尝试“明天早上 5:45”

相关内容