Kā palaist vairākas komandas vairākos Linux serveros


Ja pārvaldāt vairākus Linux serverus un vēlaties palaist vairākas komandas visos Linux serveros, bet jums nav ne jausmas, kā to izdarīt. Nav jāuztraucas, šajā vienkāršajā serveru pārvaldības rokasgrāmatā mēs parādīsim, kā vienlaikus darbināt vairākas komandas vairākos Linux serveros.

Lai to panāktu, varat izmantot programmu pssh (paralēli ssh), komandrindas utilītu, lai paralēli izpildītu ssh vairākos resursdatoros. Ar to jūs varat nosūtīt ievadi visiem ssh procesiem, izmantojot čaulas skriptu.

  1. Instalējiet Pssh, lai palaistu komandas vairākos attālos Linux serveros
  2. Visiem attālajiem serveriem jums jāizmanto SSH autentifikācija bez paroles.

Izveidojiet čaulas skriptu

Tāpēc jums jāsāk ar skripta sagatavošanu, kurā ir Linux komandas, kuras vēlaties izpildīt dažādos serveros. Šajā piemērā mēs uzrakstīsim skriptu, kas no vairākiem serveriem apkopos šādu informāciju:

  • Pārbaudiet serveru darbības laiku
  • Pārbaudiet, kurš ir pieteicies un ko viņi dara
  • Uzskaitiet piecus aktīvākos procesus atbilstoši atmiņas lietojumam.

Vispirms izveidojiet skriptu ar nosaukumu commands.sh ar iecienītāko redaktoru.

# vi commands.sh

Pēc tam pievienojiet skriptam šādas komandas, kā parādīts.

#!/bin/bash 
###############################################################################
#Script Name    : commands.sh                       
#Description    : execute multiple commands on multiple servers                                                                     
#Author         : Aaron Kili Kisinga       
#Email          : [email  
################################################################################
echo
# show system uptime
uptime
echo
# show who is logged on and what they are doing
who
echo
# show top 5 processe by RAM usage 
ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head -n 6

exit 0

Saglabājiet failu un aizveriet to. Pēc tam izveidojiet skriptu izpildāmu, kā parādīts.

# chmod +x commands.sh

Izveidojiet PSSH Hosts failu

Pēc tam pievienojiet serveru sarakstu, kurā vēlaties palaist komandas, failā hosts.txt formātā [[email ] resursdators [: ports] vai vienkārši norādiet servera IP adreses.

Bet mēs iesakām izmantot ssh aizstājvārdus, kurus var norādīt .ssh/config failā, kā paskaidrots, kā konfigurēt pielāgotus ssh savienojumus, lai vienkāršotu attālo piekļuvi.

Šī metode ir efektīvāka un uzticamāka, un tā ļauj katram tālvadības serverim norādīt konfigurācijas opcijas (piemēram, resursdatora nosaukumu, faila identificēšanu, portu, lietotājvārdu utt.).

Tālāk ir parādīts mūsu ssh hosts aizstājvārdu paraugs, kas ir lietotāja specifisks ssh konfigurācijas fails.

# vi ~/.ssh/config

Pēc tam izveidojiet failu hosts.txt, šeit varat vienkārši norādīt aizstājvārdus (nosaukumus, kas definēti, izmantojot resursdatora atslēgvārdu .ssh/config failā), kā parādīts.

# vi hosts.txt 

Pievienojiet servera aizstājvārdus.

server1
server2
server3

Palaidiet komandas, izmantojot skriptu vairākos Linux serveros

Tagad palaidiet šo komandu pssh, norādot failu hosts.txt kopā ar skriptu, kas satur vairākas komandas, lai palaistu vairākos attālos serveros.

# pssh -h hosts.txt -P -I<./commands.sh

Iepriekš norādītajā komandā izmantoto karodziņu nozīme:

  • -h - nolasa resursdatora failu.
  • -P - liek pssh parādīt izvadi, kad tā nonāk.
  • -I - nolasa ievadi un nosūta katram ssh procesam.

Tieši tā! Šajā rakstā mēs parādījām, kā izpildīt vairākas komandas vairākos Linux serveros. Zemāk esošajā komentāru sadaļā varat dalīties domās par šo tēmu.