如何根据文件创建时间制定计划任务?

如何根据文件创建时间制定计划任务?

我运行分析的超级计算机使用 SGE 进行作业管理,并要求每个作业持续时间不超过 24 小时。而这个功能让我很头疼。

遗憾的是,我被要求使用检查点机制来输出结果并重新提交脚本qsub myJobScript。就程序而言,当时钟时间达到23:30:00(我给IO操作半个小时)时,让其输出一个临时文件对我来说并不困难,假设输出文件名为1.00137/Uand1.00137/p等。
注意:当您提交作业时,您永远不知道它何时开始。但它启动时在我的文件夹下确实有一个日志文件。

所以我的问题是,当创建和检测到“新文件”时,如何使用crontabatbash 脚本自动提交我的作业?有什么想法吗?

答案1

每 5 分钟运行一个简单的脚本cron。你的 crontab 可能看起来像这样:

*/5 * * * *  /path/to/your/script

脚本伪代码:

IF (lockfile exists) { exit }
create lockfile
IF (old job has not finished yet) { 
    remove lockfile
    exit
}
IF (new job has already been queued) {
    remove lockfile
    exit
}
schedule new task
remove lockfile

shell 脚本中的锁定是否正确?了解如何正确锁定(尽可能无竞争条件)。

相关内容