2014-09-01 3 views
0

je suis en train d'écrire un script shell qui me envoyer un e-mail avant de se sortirscript shell qui envoyez un email avant de quitter

ou

que je cours ceci sur une demande spot amazon ec2 DEBAIN et devrait me envoyer un e-mail avant que les instances se termine

  #!/bin/bash 
      sendEmailLog() 
      { 
      emailLog=true 
       if [ $emailLog = "true" ];then 
        /usr/bin/mpack -s "emailed log" -a "/srv/log.html" "[email protected]"; 
       fi 
       exit 0; 
      } 

      trap sendEmailLog INT TERM EXIT KILL QUIT 

      aws ec2 terminate-instances instances ID 

j'ai essayé le code ci-dessus il me envoyer un email doesnot avant sa fin j'utilise DEBAIN 7

Répondre

1

Je pense que vous pourriez avoir quelques problèmes. Je ne suis pas très familier avec mpack, mais il semble que votre syntaxe soit correcte (sauf le ";" à la fin). Faites quelques changements, ci-dessous, et voyez si ça aide. J'utiliserais des guillemets pour définir votre chaîne emailLog, même si vous ne comprenez pas vraiment pourquoi vous utilisez une chaîne pour une instruction booléenne que, pour autant que je sache, vous voulez TOUJOURS exécuter. Sauf si vous voulez obtenir un code d'erreur.

emailLog="true" 

Pour vérifier l'égalité, utilisez deux ==:

if [ $emailLog == "true" ]; then 

Et comme je le disais, le ';' est superflu.

Si je devais réécrire, je l'écrire comme ceci:

sendEmailLog() { 
    /usr/bin/mpack -s "emailed log" -a "/srv/log.html" "[email protected]" && exit 1 
    exit 0 
} 

trap sendEmailLog SIGINT SIGTERM SIGKILL 

aws ec2 terminate-instances instances ID 
+0

il dose ne fonctionnera pas pour moi – Terence

+0

vous êtes sûr que votre commande de 'mpack'? L'avez-vous essayé depuis la ligne de commande? En y regardant de plus près, il ne semble pas que '-a' soit un commutateur supporté. – ice13berg

+0

oui je suis sûr que cela fonctionne avec -a en ligne de commande son fonctionnement parfait – Terence

Questions connexes