私は長い間この話題から離れていました。
以前、私は crontab を使用して、一定時間ごとにタスクを実行していました。30 分ごとにシェル スクリプトを実行する必要があります。
#!/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"
私は2つのアプローチに直面しています:
- systemctlサービスを作成し、
- 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)