Strumenti che un amministratore Unix non può vivere senza [chiuso]


33

Dopo aver amministrato i server Unix o simili a Unix, quali strumenti (preferibilmente da riga di comando) ritieni di non poter vivere senza?

Risposte:



34

Alcuni so che non potrei vivere senza ...

  • tee - consente la scrittura simultanea su STDOUT (output standard) e un file. Ottimo per visualizzare informazioni e registrarle per dopo.

  • top - il task manager di UNIX, offre un'ottima panoramica del sistema.

  • tail -f - ti permette di visualizzare i dati aggiunti man mano che un file cresce, ottimo per monitorare i file di registro su un server.

  • grep - Global Regular Expression Print, ideale per la ricerca di dati nei file nel sistema.

  • df - riporta l'utilizzo del disco dei filesystem correnti.

  • du - riporta l'utilizzo del disco di un determinato file / directory.

  • meno - necessario per visualizzare le pagine man! utile anche per visualizzare l'output dei comandi in un modo facilmente ricercabile.

  • vim / Emacs / nano / pico / ed - qualunque sia il tuo editor di testo preferito, si spiega da solo perché è necessario.


Per chi non lo sapesse, "less" è una versione aggiornata di "more". more era limitativo perché si poteva solo spostarsi in avanti su un file mentre meno può scorrere anche all'indietro. Ah l'umorismo ... :-)
Iain Holder

8
Un'altra caratteristica utile ma meno nota di less è che puoi sempre usare il comando 'v' per iniziare a modificare il file che stai guardando. Mnemonico è 'v' per 'vi'.
dr-jan,

E se non ti piace moreo less, puoi sempre provare most.
drybjed

Il mio PAGER preferito ora è in realtà w3m. Ha tutte le caratteristiche di meno e può raddoppiare come un browser Web in modalità testo :-) Ho anche usato una funzione bash per usare vim in modalità sola lettura (in questo modo ottengo differenze ben colorate per esempio). La funzione bash viene usata solo per decidere se fornire '-' (per leggere lo stdin) oppure no (nel caso in cui stiamo pagiando un file). Funziona come un incantesimo, ad eccezione delle pagine man in cui nroff fa
troppa attenzione

1
htopè una versione "migliore" di top.
Alexander Bird,

26

lsof per determinare quali processi utilizzano un file o una directory (utile quando si cerca di capire cosa impedisce a un dispositivo di essere smontato)

netstat per determinare quali processi utilizzano connessioni di rete (particolarmente utile quando si cerca di capire quale demone è associato a una determinata porta)


1
Se hai lsof, non hai bisogno di netstat. Basta usare lsof -i
vartec

lsof -n è la mia invocazione preferita. Lo installo a Grep per abbatterlo
Matt Simmons,

19

Scopri tutti gli strumenti di base, ma impara Perl.

Perl è l'ideale per manipolare il testo e poiché gli operatori un * x vivono su file di testo, pipe, input e output, Perl si adatta perfettamente.

Il vantaggio aggiuntivo è che Perl è multipiattaforma e se devi fare un po 'di lavoro su una finestra di Windows hai una lingua facilmente installabile (basta rilasciare una directory Perl sul server) che già conosci.

E su quel treno di pensieri, prendi anche Cygwin. Se sei un amministratore un * x e devi lavorare su una finestra di Windows (anche sul desktop) con ls, rm, grep, sed, tail ecc, risparmierai molto tempo quando cambi il sistema operativo.


18
  • sed
  • awk

I nonni dimenticati dei moderni sistemi di scripting. So che Perl ottiene la maggior parte dell'amore (insieme a Bash scripting, Python, Ruby e [inserisci qui il tuo linguaggio di scripting preferito]), e non fraintendetemi, adoro Perl. Lo uso quasi ogni giorno.

Ma sed e awk non dovrebbero essere dimenticati, trascurati o ignorati. In molti casi, sed e awk sono gli strumenti migliori per il lavoro. Esempi rapidi sono il filtraggio della riga di comando con sed e l'elaborazione dei log rapida e sporca con awk. Entrambi potrebbero essere realizzati in Perl, ma richiederanno più tempo di lavoro e sviluppo.


13

rsync, specialmente in concerto con ssh. Consente una copia semplice ed efficiente dei file da host a host. Come siamo mai riusciti a farcela senza ssh e rsync? :-)


12

Netcat.

  • Verifica se i servizi TCP sono in ascolto.
  • Eseguire transazioni con protocolli in testo normale come SMTP.
  • Rapidi trasferimenti di dati non sicuri tra le macchine.
  • Emulazione client Telnet.

La rete coltellino svizzero, come si suol dire.


Di recente ho iniziato a utilizzare socat come sostituto di netcat e sono rimasto sorpreso dal numero di opzioni che ti offre. Sicuramente vale la pena dare un'occhiata, nonostante la quantità spaventosa di switch e la strana sintassi.
Marcin,

12

Ammettilo: prima o poi ti occuperai anche della rete. mtr , tcpdump e tshark sono davvero utili per vedere cosa sta succedendo.


9

Per script rapidi, automazione, ecc:

  • bash
  • perl

Per connettersi al server * NIX:

  • Apri SSH (client Linux)
  • Putty (client Windows)

+1 per ... beh, tutto davvero, ma soprattutto Perl. * nix, Windows o Mac, non riesco a immaginare cosa farei senza di esso.
John Gardeniers,

9

Uso la maggior parte degli strumenti già elencati, ma eccone uno che nessuno ha ancora toccato:

Puppet - sistema per automatizzare le attività di amministrazione del sistema



6

La maggior parte di quelli standard sono inclusi in altre risposte, quindi andrò per quelli non standard:

  • htop : ottimo per la gestione dei processi;
  • pinfo - lynx come browser per informazioni e pagine man.

6

Un paio di strumenti utili che non ho ancora visto menzionati:

  • dstat --nocolor (panoramica di cpu-, disk-, net-use)
  • iftop (bella panoramica dinamica del traffico di rete)
  • ccze (file di log di colore piacevolmente)
  • tunnel ssh (può essere utile di tanto in tanto; consultare il manuale; -R)
  • aspettati (automatizza le interfacce dialogiche interattive e chiacchierone, bello se hai un pizzico)

+1 "tail -f <file> | ccze" = modo straordinario di leggere i file di registro.
Lin,

+1 perexpect
Alexander Bird,

+1 per dstat. Miglior sostituto per vmstat, iostat, ecc. Là fuori.
Christopher Cashell,

5

clusterssh

ClusterSSH controlla un numero di finestre xterm tramite un'unica finestra della console grafica per consentire l'esecuzione interattiva dei comandi su più server tramite una connessione ssh.


... e poiché ClusterSSH è scritto in Perl, forse dovresti imparare il Perl.
Brad Gilbert,

Qual è la differenza tra lo schermo ClusterSSH e GNU? o sono implementazioni diverse dello stesso concetto?
Alexander Bird,

4

vmstat 1

Ti offre un'ottima panoramica del comportamento del sistema.


4

pv: visualizza l'avanzamento delle operazioni lunghe che possono essere reindirizzate. http://www.ivarch.com/programs/pv.shtml

Utile quindi vuoi monitorare qualcosa che sta per richiedere secoli, come copiare / comprimere un dispositivo a blocchi non elaborati sulla rete (che è il modo in cui prendo i backup di paranoia del mio netbook da 8 GB prima di armeggiare con qualcosa di importante come modificare le impostazioni del file system).

Inoltre: voterò in secondo luogo per ssh, rsync, screen, htop e netcat, come menzionato dalle persone sopra - tutto ciò è più importante del pv ma il pv non era ancora stato menzionato. In effetti pv è spesso un'utile aggiunta quando si effettua il piping di roba da o verso netcat.


pvpuò essere uno strumento utile, ma fai attenzione a non abusarne. Passare i dati attraverso di esso ha assolutamente un impatto sulle prestazioni (tutti i dati devono passare attraverso un altro programma). Nel mio ultimo lavoro, abbiamo svolto molta elaborazione dei log. Uno dei ragazzi ha deciso di iniziare a inserire pv in tutti gli script di elaborazione dei log, fino a quando non abbiamo scoperto che per loro era stato aggiunto circa il 15% al ​​tempo di elaborazione. Ora viene utilizzato solo per lavori che richiedono meno di pochi minuti o che presentano una limitazione delle risorse esistente (come l'attraversamento di una connessione di rete lenta).
Christopher Cashell,

Buon punto Christopher, anche se non l'ho mai visto causare un cambiamento delle prestazioni del 15% (poi di nuovo, la maggior parte di ciò che uso pvè legato a I / O su disco o di rete piuttosto che su CPU / memoria). Lo stesso argomento è quello chiave contro l'uso cateccessivo di (a volte uso cat quando non è effettivamente necessario solo per far leggere bene le cose da sinistra a destra, ma la copia dei dati in memoria aggiuntiva tramite la pipe e il cambio di contesto possono avere un impatto misurabile delle prestazioni).
David Spillett, il

Sì, faccio la stessa cosa. La maggior parte del mio catuso eccessivo viene dal principio cat foo, seguito dal colpire la freccia "su" e quindi aggiungendo | [command]alla mia riga precedente. So che sto subendo un (piccolo) colpo di performance mantenendo il gatto lì dentro, ma lasciarlo richiede meno sforzo di riscrivere / riscrivere il comando [command] < foo. Non è un problema per (la maggior parte) linea di lavoro ad hoc, ma non è l'ideale per gli script (lo stesso di quello che provo pv, credo).
Christopher Cashell,

4

ssh, Vim, htop, su, Python, ls, cd, screen, du, tar :)



3

Alcuni che non sono stati menzionati prima:

  • testa / coda
  • diff
  • pstree
  • catrame
  • gzip / bzip
  • orologio

+1 pstree è piuttosto dolce.
Lin,

3

tubo di catrame!

reindirizzare l'output di tar a un'altra utility, tar in esecuzione sulla stessa scatola o tar in esecuzione su SSH è la mia mossa Unix preferita della vecchia scuola per spostare i file da un posto all'altro.

Questo ti dà anche l'opzione in stile Windows di copiare una cartella in un'altra e finire con tutti i file nella directory di origine e di destinazione.



3

iotop, è un programma top-like per monitorare gli accessi I / O ai tuoi dischi.


Disponibile solo sui kernel più recenti, ma estremamente piacevole.
Sean Reifschneider,

3

La maggior parte di questi strumenti sono resi molto più potenti usando il "completamento programmabile" di Bash - in modo da poter completare schede come le opzioni della riga di comando o pronunciare il nome di un pacchetto con "apt-get install". Limita anche ciò che completi di tabulazione per i file pertinenti, ad esempio "decomprimere" completerà solo i file di archivio supportati.

Sono davvero i mutanti - se non l'hai mai provato probabilmente dovrai solo giocherellare con il tuo .bashrc:

if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
 fi

Certamente questo è vero su Ubuntu e Debian. Potrebbe essere necessario ottenere il pacchetto su alcune distribuzioni Linux.



2

Alcune cose trascurate che volevo menzionare.

  • vim -d div console a schermo diviso che rende molto facile vedere le differenze in un file
  • pdsh ti consente di eseguire facilmente un comando su tutti i sistemi che desideri sia seriali o paralleli (sono un amministratore del cluster. Non posso funzionare senza di esso.)
  • nmon è come il top su crack. Ti dà una grande idea di cosa sta succedendo su un sistema su un singolo schermo. È possibile visualizzare I / O del disco, utilizzo della CPU I / O di rete e utilizzo della memoria in tempo reale. Almeno una cosa davvero divertente con cui giocare quando si profila un sistema.

Oh, e ho dimenticato di menzionare, durante lo scripting, credo che dovresti sempre usare Korn. Odio i Korn (non la band. Adoro la band :-P) ma è letteralmente ovunque. Puoi prendere uno script e spostarlo tra Solaris, AIX e Linux e non devi preoccuparti se l'amministratore ha avuto la decenza di installare Bash.


2

Uno strumento a volte molto utile è nohup. Lo uso per eseguire script che durano a lungo utilizzando client SSH remoti.


2

man - per leggere le pagine man.

elinks - per controllare google, perché sono sicuro che non riesco a ricordare tutto.

E attenzione ai dettagli e tenacia, perché senza di loro perdo tempo.


+1 per l'attenzione ai dettagli e la tenacia
cop1152

2

lo schermo è un must, specialmente con un buon file .screenrc. L'ho configurato per visualizzare visivamente in quale finestra mi trovo e posso spostarmi tra loro con Ctrl + Freccia. Per una singola sessione SSH e più shell, è un salvavita.



2

Adoro AWK e "for" nella riga di comando.

Soprattutto per creare un elenco di comandi che voglio eseguire e quindi eseguirli tutti in una volta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.