Kopiere filer til flere systemer samtidig med PSSH

Har du noen gang lurt på om det er en enkel måte å kopiere filer og kjøre kommandoer på flere maskiner fra én kommando?

Vel er det flere verktøy tilgjengelig som vil hjelpe oss å gjøre nettopp det, men for det første vil vi diskutere nettopp pssh (Parallel SSH).

pssh (Parallel SSH)

pssh (Parallell SSH) er et kommandolinjeverktøy som inkluderer PSCP og Her kan du sende kommandoer og kopiere filer til flere server via en liste eller enkeltvis. Det gjør det svært enkelt å distribuere kommandoer og filer til noen eller hundrevis av servere

Installasjonen er ganske enkel med Fedora og RHEL /CentOS.

 sudo yum install pssh 

Say jeg ønsket å kopiere to filer til flere verter til /tmp og begrense kommandoen kjøres 5 systemer på en gang og kjøre som root jeg ville kjøre følgende kommando på RHEL /CentOS 5.x og høyere:

 pscp.pssh -Va h ~ /myhosts.txt -l id -p 5 -e /tmp upgrade_prog upgrade_prog.tar.gz /tmp /

-Va bryteren forteller PSCP å kjøre i verbose mode og be om et passord .-h bryter forteller PSCP listen over vertene ligger i denne filen, og dette plasseringen.-p-bryteren sier kjøre på 5 systemer på en gang-e-bryteren forteller PSCP å sende ut feilloggen til /tmp på systemet mitt
< p> Så til slutt, filene for å sende og destinasjonen på systemene

 NAMEpscp - parallell prosess drepe programSYNOPSISpscp [-var] [-h hosts_file]. [-H [user @] host [: port]] [l user] [-p pari] [-o outdir] [-e errdir] [-t timeout] [-O alternativer] [-xargs] [-X arg] lokal remoteDESCRIPTIONpscp er et program for å kopiere filer i parallell et antall verter. Det gir funksjoner som passerer et passord for å scp, sparer utgang til filer, og timing out.OPTIONS-h host_file - verter host_file 

Les vertene fra den gitte host_file. Linjer i vertsfilen er på formen [user @] host [: port], og kan inkludere blanklines og kommentarer (linjer som begynner med "#"). Hvis flere vertsfiler er gitt (h alternativet brukes mer enn én gang), deretter PSCP oppfører seg som om disse filene ble sammenkjedet sammen. Hvis en vert spesifisert flere ganger, deretter PSCP willconnect gitt antall ganger

 -H [user @] host [: port] - host [user @] host. [: Port] -H "[ ,,,0],bruker @] host [: port] [[user @] host [: port] ...] "- host" [user @] host [: port] [[user @] host [: port] ...] "Legg den gitte verts strenger til listen over verter. Dette alternativet kan gis flere ganger, og kan brukes i conjunctionwith-h option.-l bruker - bruker userUse angitt brukernavn som standard for alle vertsoppføringer som ikke spesifikt angir en user.-p parallelism-- pari parallelismUse gitt antall som det maksimale antall samtidige connections.-t timeout - timeout timeoutMake tilkoblinger gang ut etter gitt antall sekunder. Med en verdi på 0, vil PSCP ikke timeout noen connections.-o outdir - outdir outdir 

Lagre standard utgang til filer i mappa. Filnavn er på formen [user @] host [: port] hvor userand port er kun tatt med for vertene som eksplisitt angir dem [num.]. Tallet er en teller som økes hver timefor verter som er angitt mer enn én gang

 -e errdir -. Errdir errdirSave standard error til filer i mappa. Filnavn er av samme form som de -o option.-x args - ekstra-args argsPasses ekstra SSH kommandolinjeargumenter (se ssh (1) man-siden for mer informasjon om SSH argumenter). Dette optionmay angis flere ganger. Argumentene er behandlet for å dele på mellomrom, beskytte tekst i anførselstegn, andescape med backslashes. Å passere argumenter uten slik behandling, bruk -X alternativet instead.-X arg - ekstra arg argPasses en enkelt SSH kommandolinje argument (se ssh (1) man-siden for mer informasjon om SSH argumenter). I motsetning til-x alternativet, er ingen behandling utført på argumentet, inkludert ord splitting. Å passere flere kommandolinjeargumenter, -O alternativer - opsjoner optionsSSH alternativer i formatet som brukes i SSH konfigurasjonsfilen (se ssh_config (5) man-siden for mer informasjon). Thisoption kan spesifiseres flere times.-A - askpass 

Spør om et passord, og gi det til SSH. Passordet kan brukes til enten å låse opp en nøkkel eller for autentisering av passord. Passordet blir overført i en ganske sikker måte. f.eks Det vil ikke dukke opp i argument listen. Men beaware at en Root brukeren på systemet potensielt kan snappe passordet

 -V -. VerboseInclude feilmeldinger fra ssh med -i og \\ options.-r - recursiveRecursively kopiere directories.TIPSThe ssh_config fil kan inneholde et vilkårlig antall Host seksjoner. Hver vert oppføringen angir ssh alternativer som bare gjelder tothe gitt vert. Host definisjoner kan også oppføre seg som aliaser Hvis vertsnavnet alternativet er inkludert. Dette ssh funksjonen, i kombina-sjon med pssh vertsfiler, gir en enorm mengde flexibility.EXIT STATUSThe exit statuskoder fra PSCP er som følger: 0 Success1 Diverse feil2 Syntax eller bruk feil3 Minst en prosess ble drept av et signal eller tidsbestemt out.4 Alle prosesser fullført, men minst én scp prosess rapporterte en feil (exit status annet enn 0). 

Som med PSCP kan du bruke pssh å kjøre Command flere verter. Syntaksen er lik PSCP.

 pssh -Va h ~ /myhosts.txt -l id -p 5 -t 5 -e /tmp -o /tmp-vertsnavn 

Dette eksemplet kjører vertsnavnet kommandoen på listen over servere og skriver utdata til /tmp.

Ved hjelp av de to kommandoene du kan utføre mange oppgaver på flere servere med en kort tid og krefter.

Også oppmerksom på når du bruker pssh eller pssh.pscp for første gang vil du motta en fiasko, er dette på grunn av ssh nøkkelen ikke eksisterende i known_hosts fil. Hvis du bruker -X arg alternativ du kan passere -oStrictHostKeyChecking = ingen ssh parameter og det vil legge nøkkelen til known_hosts fil. Bruke -x args du kan string flere ssh alternativer

Eksempel:.

 pssh -Va h ~ /myhosts.txt -l id -p 5 -t 5 -e /tmp -o /tmp -X "-oStrictHostChecking = no" hostname