Cron备份任务

Cron备份任务

我已经很久没有深入讨论这个话题了。

前段时间,我习惯使用 crontab 每隔一段时间执行一项任务。我需要每 30 分钟执行一次 shell 脚本:

#!/bin/bash
SNAPSHOT=`date +%Y%m%d-%H%M%S`
docker exec es curl -XPUT "localhost:9200/_snapshot/my_backup/$SNAPSHOT?wait_for_completion=true"

我面临两种方法:

  1. 创建 systemctl 服务,
  2. 创建一个 crontab。

实现该目标的最佳方法是什么?

答案1

在您的评论中,您写道您添加了如下 cron 作业:

0,30 * * * * root docker exec es sh /usr/local/bin/snapshot.sh

从你的脚本来看,它将是:

0,30 * * * * root /usr/local/bin/snapshot.sh

这样,您的脚本将以root权限执行。/var/log/cron您将获得:Jan 20 05:30:01 platform-prod CROND[16409]: (root) CMD (root /usr/local/bin/snapshot.sh)

相关内容