GNU/Linux >> Znalost Linux >  >> Linux

Spustit stejný skript na několika serverech přes Ssh?

Pravidelně potřebuji aktualizovat některé servery Ubuntu 12.04 (Precise Pangolin) (Rackspace).

Co teď dělám je:

  • Zkopírujte soubor na server pomocí SCP
  • Přihlaste se k serveru pomocí SSH
  • Zastavte Tomcat
  • Proveďte nějaké kopírování a přesunutí nahraného souboru
  • Spusťte Tomcat

Opakujte přesně stejný proces se stejným souborem na druhém serveru (nyní je to 12 serverů a počet roste).

Je možné napsat skript, který prochází seznam serverů a dělá to všechno za mě?

Jak bych na to šel?
Řešení by pokud možno nevyžadovalo instalaci žádných věcí. Většina ve společnosti pracuje na MacBookech, ale virtuální počítače s Windows jsou hojné.

V ideálním případě lze servery, které mají být aktualizovány, jednoduše přidat/odebrat a změnit tak seznam serverů. Nicméně každé řešení, které mi ušetří čas při provádění stejné věci +12krát, velmi oceňuji 🙂

Přijatá odpověď:

Existuje několik řešení – chcete si ponechat ruční ovládání kroků a jednoduše je procházet současně? Podívejte se na CSSH (pokud přicházíte ze systému Linux) nebo SuperPutty (pokud pocházíte ze systému Windows). Pokud chcete vše automatizovat, podívejte se na Expect.


Linux
  1. Číst a zapisovat do stejného souboru v Linuxu bez přepisování?

  2. Odkazovat na soubor ve stejném adresáři skriptu nalezeného v $path?

  3. Bash skript k odstranění nejstaršího souboru ze složky?

  1. Proč skript Bash nerozpozná aliasy?

  2. Má být výstup uložen do souboru se stejným názvem jako vstupní soubor?

  3. Jak spustit skript shellu při spuštění

  1. Ssh – předávání hesel do skriptu?

  2. Spuštění souboru skriptu přes Ssh přes Sudo?

  3. Přesměrovat na stejný soubor jako zdrojový soubor zpracovaný příkazem?