GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Führen Sie nach dem Booten der EC2-Instance ein Bash-Skript aus

Lösung 1:

Ich würde vorschlagen, einfach die Benutzerdatenoption für ec2-run-instances zu verwenden . Damit können Sie der VM ein Skript geben, das beim ersten Start ausgeführt wird. Wenn Sie Ubuntu oder Debian verwenden, können Sie cloud-init verwenden, was dem Prozess etwas Feinschliff verleiht. Wenn Sie cloud-init verwenden, können Sie den [runcmd] verwenden Abschnitt der Konfigurationsdatei, um beliebige Befehle anzugeben, die nach dem Booten ausgeführt werden sollen.

Danke an SF-Benutzer Eric Hammond für die Benutzerdatenseite. Sehen Sie sich seine Website an – sie enthält eine Fülle von Informationen zu AWS.

Bearbeiten:Nach dem erneuten Lesen ist nicht klar, ob Sie einen Befehl beim ersten Start oder bei jedem Start ausführen wollten. Die obigen Anweisungen gelten nur für den ersten Start. Wenn Sie bei jedem Start einen Befehl ausführen möchten, haben Sie mehrere Möglichkeiten - Sie können einen Befehl über @reboot ausführen cron Direktive, oder alternativ können Sie das Skript zu /etc/rc.local hinzufügen , die bei jedem Systemstart ausgeführt wird.

Lösung 2:

Wenn Sie ein AMI mit dem cloud-init verwendet haben Paket installiert (wie Amazon Linux oder Ubuntu), dann könnten Sie einfach das Bash-Skript (das mit #! beginnt) als Benutzerdatendatei übergeben und es würde am Ende des Bootvorgangs automatisch ausgeführt.

Zum Beispiel könnte es so einfach sein wie:

ec2-run-instances                             \
  --user-data-file /home/root/beginProcess.sh \
  --key $USER                                 \
  ami-XXXXXXXX

Hier ist der Artikel, in dem ich das Benutzerdaten-Skriptkonzept vorgestellt habe, das jetzt in wichtigen EC2-AMIs wie Amazon Linux und Ubuntu verfügbar ist:http://alestic.com/2009/06/ec2-user-data-scripts

Leider sieht es so aus, als wollten Sie ein RHEL-AMI verwenden. Ich habe eine Kopie davon ausgeführt und konnte keine Verweise auf Cloud-Init oder das Ausführen von Benutzerdatenskripten beim ersten Start finden, noch hat ein Test derselben Arbeit funktioniert.

Ich sage nicht, dass Sie die Linux-Distributionen nur dafür wechseln sollten, aber Amazon Linux basiert auf RHEL, also könnte das für Sie funktionieren.

Hier ist ein Artikel, den ich geschrieben habe, der Ihnen helfen könnte, Ihr Benutzerdaten-Skript zu debuggen, wenn es beim ersten Mal nicht funktioniert:http://alestic.com/2010/12/ec2-user-data-output


Linux
  1. Wie führe ich Linux-Bash-Befehle in einem PERL-Skript aus?

  2. Init.d-Skript wird beim Booten nicht ausgeführt?

  3. Führen Sie das Bash-Skript als Daemon aus

  4. Wie kann man das Bash-Skript alle N Sekunden wiederholt ausführen?

  5. Führen Sie den Bash-Befehl auf der Jenkins-Pipeline aus

So führen Sie ein Bash-Skript aus {7 Methoden}

So führen Sie ein Skript beim Booten in Debian 11 aus

So führen Sie ein Bash-Skript aus

Berechtigung zum Ausführen von cron mit bash.sh verweigert

Führen Sie das Bash-Skript nach der Anmeldung aus

Wie führe ich ein Bash-Skript über einen absoluten Pfad aus?