我正在尝试使用我的网络摄像头拍摄延时图像。我想做的是在 1 月 1 日午夜运行一个脚本,然后在 1 月 2 日 00:15、1 月 3 日 00:30 等等。这可以一直运行,完成后我会将其关闭。
我无法使用 Cron 来做到这一点,不是吗?除非将所有可能的组合都填入 crontab。但我不知道还能做什么。
答案1
您无需在脚本中创建新的 cron 作业,也不必每次都删除“旧”的 cron 作业,而应该使用命令at
。该at
命令就是为此而创建的,用于让命令在特定日期/时间运行一次。这样,您就不必删除旧的 cron 作业。
因此,您可以拥有自己的脚本,我们将其称为“capture_from_webcam.sh”,如下所示:
#!/bin/bash
#schedule next capture for tomorrow + 15 minutes
echo "/path/to/capture_from_webcam.sh" | at tomorrow + 15 minutes
# capture from webcam
/path/to/capture_from_webcam.sh
第一次执行是在 1 月 1 日午夜:
echo "/path/to/capture_from_webcam.sh" | at 00:00 01/01/2010
有关详细信息,请参阅在手册页。
答案2
您可以创建一个 cron 作业作为您计划运行的脚本的一部分。因此,让 cron 作业运行一次,然后 bash 脚本在 15 分钟后创建下一个作业,依此类推。
以下是之前的一个问题,或许对您有帮助:如何使用 bash 创建 cron 作业
答案3
您可以通过 cron 执行此操作。
您每天在同一时间调用相同的 cron 脚本,但是在脚本的开头添加了一个 sleep 语句,该语句将休眠 15 分钟* date +'%j'
,即一年中的这一天,[ 001 ... 366 ]。