2013-06-04 21 views

答えて

14

のapp.config:

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

crontab.sh:名案That`s

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 
+1

私によく見えます! – tnichols

+4

コンテナコマンドに 'test'オプションが追加されているので、crontab.shのif文をleader_onlyの後にapp.configに移動することができます: 'test: '[" $ PARAM1 "==" MyAppEnv-Production "]'' – choobablue

2

私はあなたが考えている方法でそれを行うための簡単な方法はないと思います。 configファイルを実行して、2番目のスクリプト(おそらくcron.sh)を実行することができます。 cron.shの中で環境名を確認して、それに応じてcronジョブを追加することができます。それをテストしていないが、私はそれが動作するはずだと思う。


変更環境変数PARAM1MyAppEnv-Productionに値(または何をしたい):私は解決策を見つけたTNICHOLSアイデアによると

+0

、病気はそれをやろう! –

+0

.shスクリプトで実行中の 'Environment Name'を取得する方法はありますか? –

+0

あなたのアイデアに基づいて私のソリューションをチェック;)ありがとう! –

関連する問題