GNU/Linux >> Linux Esercitazione >  >> Linux

Invio di "ps" su più server, output che va a un file di testo?

Sto cercando di creare uno script che produca tutti i processi defunti su 66 caselle redhat in un singolo file di testo. Comprendo i principi per eseguire questa operazione su una scatola, ma non sono sicuro di come trasformare quel processo in qualcosa che verrà eseguito su una scatola, ma interrogare più scatole.

Quindi, ho trovato questo piccolo script:

for host in $(cat hosts.txt); do ssh "$host" "$command" >"output.$host"; done

Capisco che potrei essenzialmente inviare ps -ef | grep "defunct" come $command , ma penso che qualsiasi file di output che creo verrà rilasciato sull'host su cui è in esecuzione.

Devo eseguire questa operazione da una casella, memorizzando l'output su quella casella, ma contenendo le informazioni per le altre 65 caselle?

Credo che abbiamo installato ssh senza password. La mia conoscenza di Unix è di livello intermedio, ne conosco un po' perché sto usando SAS.

Risposta accettata:

Il reindirizzamento avviene sulla macchina chiamante, non sulla macchina remota, quindi il file dei risultati sarà locale. Inoltre, il grep non ha bisogno di essere eseguito in remoto:

while read -r host; do
    ssh "$host" ps -ef | grep "defunct" >"output.$host"
done <hosts.txt

Questo esegue ps -ef su ogni host e grep estrarrà il defunct linee di uscita. Il grep verrà eseguito in locale, non in remoto. Il file dei risultati, allo stesso modo, viene creato localmente.

Se vuoi un unico file di output:

while read -r host; do
    ssh "$host" ps -ef | grep "defunct"
done <hosts.txt >output.txt

O anche (per una singola chiamata di grep )

while read -r host; do
    ssh "$host" ps -ef 
done <hosts.txt | grep "defunct" >output.txt

Linux
  1. Output su Stdout e allo stesso tempo Grep in un file?

  2. Come configurare più server MySQL su un sistema usando mysqld_multi

  3. Rimuovi le righe vuote in un file di testo tramite grep

  4. Come concatenare più righe di output in una riga?

  5. Come aggiungere il contenuto di più file in un unico file

Esegui il ping di più server e mostra l'output nell'interfaccia utente di testo simile a quella superiore

Come salvare l'output dei comandi di Linux in un'immagine o in un file di testo

Manipolazione del testo con sed e grep

Come unire più righe in una in un file in Linux

Come estrarre indirizzi e-mail da file di testo in Linux

3 metodi per visualizzare l'output di coda -f di più file di registro in un terminale