在linux上的特定日期/时间执行a.out

时间:2012-10-12 01:33:11

标签: linux time

我需要在特定日期/时间开始“a.out”。 例如,我想在下午12:10:30开始“a.out”。 任何想法都表示赞赏!

2 个答案:

答案 0 :(得分:3)

这就是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选项中的子分钟规范,以便您的包装作业不会停留太长时间(时间字符串{{1} }):

YYYYMMDDhhmm.ss

答案 1 :(得分:2)

这很简单:

at 1210 <<< "sleep 30; /path/to/a.out"

at命令专门用于在特定时间运行命令。 cron不同,它专为重复任务而设计。

请参阅man 1 at