我已經脫離這個話題很久了。
前段時間,我習慣使用 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"
我面臨兩種方法:
- 建立一個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)