我需要在特定日期/时间开始“a.out”。例如,我想非常准确地在下午 12:10:30 开始“a.out”。任何想法表示赞赏!
问问题
1843 次
2 回答
4
这就是cron
和/或at
的目的。
由于cron
只有一分钟的分辨率,您可能需要设置一个在 12:09 运行的脚本。
然后,该脚本将进入一个紧密循环,检查日期和时间,直到正好是 12:10:30,然后运行您的“真实”代码。
因此,您的cron
输入将是:
9 12 * * * /mydir/myscript
会/mydir/myscript
是这样的:
#!/bin/bash
while [[ $(date +%H%M%S) -lt 121030 ; do
sleep 1
done
/mydir/myexecutable
那就是如果您希望它在一天中的同一时间运行很多天。对于一次性执行,您仍然可以使用脚本,但使用at
它来运行它(时间字符串为YYYYMMDDhhmm
):
at -f /mydir/myscript -t 201212311209
或者,如果您at
足够先进,它可能允许在-t
选项中进行亚分钟规范,以便您的包装作业不会停留太久(时间字符串YYYYMMDDhhmm.ss
):
at -f /mydir/myscript -t 201212311210.25
于 2012-10-12T01:35:11.930 回答
3
这很简单:
at 1210 <<< "sleep 30; /path/to/a.out"
at
command 专门设计用于在特定时间运行命令。cron
不同的是,它是为重复任务而设计的。
看man 1 at
于 2012-10-12T01:36:07.030 回答