每n秒复制一次

Copy every n seconds

我有一个睡眠和复制功能来检索集群节点上模拟的每日输出 运行。它基本上是这样的:

sleep_and_copy() {
while true; do
sleep 85600s
copy_data
done
}

其中 copy_data 将执行复制。问题是 copy_data 需要很多时间来执行。换句话说,我的复制仅每 85600 秒 + 时间进行复制

有没有办法精确地每 n 秒执行一次复制?

每 24 小时(=86400 秒)向 运行 复制脚本,使用 cron 作业!这也确保任务在重启后 运行s。

如果你真的想使用一个脚本并且 运行 每 85600 秒,你可以简单地执行以下操作:

while true; do
  sleep 85600s
  copy_data &
done

无论 copy_data 在后台进程中做什么,& 都会立即启动 returns。

以上答案在技术上是正确的,但我倾向于等待第一份副本(以防它尚未完成),否则您可能会遇到损坏:

while true; do
  sleep 85600s
  wait
  copy_data &
done