需要每天早上 9 点跑步,并且每 10 秒保持一次跑步

Posted

技术标签:

【中文标题】需要每天早上 9 点跑步,并且每 10 秒保持一次跑步【英文标题】:Need to run a sh everyday at 9 am and keep running every 10 secs 【发布时间】:2020-06-21 03:54:23 【问题描述】:

我正在编写一个覆盆子相机

所以,我需要每天早上 9 点执行一个 sh 脚本,但之后,该脚本必须每 10 秒运行一次。

就像它在早上 6 点开始拍照并每 10 秒拍照一次,直到我自动重新启动系统以停止命令。

00 09 * * 1 watch -n 10 sh /home/pi/timelapse/process1.sh
00 09 * * 2 watch -n 10 sh /home/pi/timelapse/process1.sh
00 09 * * 3 watch -n 10 sh /home/pi/timelapse/process1.sh
00 09 * * 4 watch -n 10 sh /home/pi/timelapse/process1.sh
00 09 * * 5 watch -n 10 sh /home/pi/timelapse/process1.sh

00 17 * * 1 sudo reboot
00 17 * * 2 sudo reboot
00 17 * * 3 sudo reboot
00 17 * * 4 sudo reboot
00 17 * * 5 sudo reboot

30 17 * * 1 sh /home/pi/timelapse/newimage/video.sh
30 17 * * 2 sh /home/pi/timelapse/newimage/video.sh
30 17 * * 3 sh /home/pi/timelapse/newimage/video.sh
30 17 * * 4 sh /home/pi/timelapse/newimage/video.sh
30 17 * * 5 sh /home/pi/timelapse/newimage/video.sh

重启 crontab 必须在下午 5 点停止第一个命令,所以我不需要对其进行编程来停止。然后它用命令中的所有照片制作一个视频。

我尝试使用 crontab、watch 和 sleep,但 crontab 甚至在 sh 脚本中也不运行它们。

假设在文件夹中创建图像,但它没有。我把代码放在这里。当我手动执行它时,它可以工作。

raspistill -w 1920 -h 1080 -o /home/pi/timelapse/images/imageBTW.jpg DATE=$(date +"%Y-%m-%d_%H%M%S") for file in "/home/pi/timelapse/images/imageBTW.jpg" ; do convert "$file" \ -pointsize 72 -fill white -annotate +100+100 \ %[exif:DateTimeOriginal] /home/pi/timelapse/newimage/$DATE.jpg done rm /home/pi/timelapse/images/imageBTW.jpg

【问题讨论】:

如果我这样做,我会编写一个 shell 脚本,其中包含一个延迟 10 秒运行的循环。然后在上午 9:00 启动它。我会使用 cron 在正确的时间启动它。之后,重复调用将发生在脚本本身内部。 脚本可以运行10秒以上吗?如果是的话应该怎么做? 它必须创建一个名为 ImageBTW 的图像,为其添加时间戳并用日期重命名,然后将其发送到 newimage 文件夹。 【参考方案1】:

尝试阅读:man 5 crontab

在那里您会发现cron 的工作精度非常低的信息。

但您可以将以下内容写入您的crontab

0 9 * * 1-5 watch -n 10 sh -c 'while /home/pi/timelapse/process1.sh; do sleep 10; done'

顺便说一句,你想监视谁?

【讨论】:

哈哈哈,非常感谢,不监视任何人只是时间流逝的项目。 它仍然不起作用,它应该在文件夹中创建图像并且它没有。我把代码放在这里。当我手动执行它时,它可以工作。我编辑了问题。

以上是关于需要每天早上 9 点跑步,并且每 10 秒保持一次跑步的主要内容,如果未能解决你的问题,请参考以下文章

我要在oracle 10g创建一个job,每天凌晨9点执行一个过程,过程名假定为 pro_1001 谢谢指点

spring 任务调度 9:25 到16点 每10秒执行一次

如何在 Azure Logic 应用程序中为每两分钟触发器安排天数和小时数?

是否可以在特定时间(即早上 8 点)设置警报,并且会在特定时间(即 1 小时)继续保持警报

设置定时任务为每天凌晨2点执行和每小时执行一次

spring怎么设置定时任务为每天凌晨2点执行和每小时执行一次?