每n秒复制一次

时间:2017-07-30 14:37:13

标签: bash sleep background-process cp

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

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

copy_data将执行复制。问题是copy_data需要花费大量时间来执行。换句话说,我的副本仅在每85600s + 时间发生,以进行复制

有没有办法每隔n秒执行一次复制?

2 个答案:

答案 0 :(得分:0)

要每24小时(= 86400秒)运行一次复制脚本,请使用cron作业!这也确保了任务在重新启动后运行。

如果您真的想使用脚本并每85600次运行一次,您只需执行以下操作:

while true; do
  sleep 85600s
  copy_data &
done

&启动copy_data在后​​台进程中执行的操作并立即返回。

答案 1 :(得分:0)

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

while true; do
  sleep 85600s
  wait
  copy_data &
done