如何每5分钟执行一部分shell脚本,每1小时执行一次rpart



我有一个shell脚本,它收集一些数据并将其发送到目标。部分数据应每5分钟复制一次,其他数据应每20分钟复制一份。如何在一个脚本中实现这一点?到目前为止,我通过使用cron进行调度,每5分钟收集一次数据。

最佳做法是使用两个不同的cron条目来分隔文件。如果您需要重新利用部分代码,请考虑使用函数。

如果你仍然只想在一个文件中执行,你应该每5分钟运行一次,每次运行时检查是否应该执行另一部分(每20分钟)。

modulo=$((`date +%_M)` % 20))
//do whatever has to be done every 5min
[...]
//check for modulo of current minute / 20
if [ $modulo -eq 0 ]; then 
echo Current minute is `date +%_M)`, must execute part 2
//whatever has to be done every 20min
else 
//do nothing
fi;

在第一行中定义变量modulo的原因是,每5分钟必须执行的操作可能需要超过1分钟的时间才能执行,因此到执行时,分钟不再是20,而是21。在此之前定义变量是克服这一问题的一种保障措施。

最新更新