11

と に 2 つの環境がありAWS Elastic Beanstalkます。DevelopmentProduction

.ebextensions/app.config環境でのみ実行したいと思いProductionます。それを行う方法はありますか?


app.config:

container_commands:
  01-command:
    command: "crontab .ebextensions/cronjob"
    leader_only: true
4

2 に答える 2

15

TNICHOLSアイデアによると、私は解決策を見つけました:


環境PARAM1変数の値をMyAppEnv-Production(または必要な値に) 変更します。

app.config:

container_commands:
  command-01:
    command: "/bin/bash .ebextensions/crontab.sh"
    leader_only: true

crontab.sh:

if [ "$PARAM1" == "MyAppEnv-Production" ]; then
  crontab -l > /tmp/cronjob

  #CRONJOB RULES
  echo "00 00 * * * /usr/bin/wget http://localhost/cronexecute > /dev/null 2>&1" >> /tmp/cronjob

  crontab /tmp/cronjob
  rm /tmp/cronjob
  echo 'Script successful executed, crontab updated.'
else
  echo 'This script is only executed in the production environment.'
fi
于 2013-06-06T01:13:22.783 に答える
2

あなたが考えている方法でそれを行う簡単な方法はないと思います。構成ファイルを実行して、2 つ目のスクリプト (おそらく cron.sh) を実行することができます。cron.sh 内で環境名を確認し、それに応じて cronjobs を追加できます。テストしていませんが、うまくいくはずです。

于 2013-06-05T19:15:48.200 に答える