Tools, ohne die ein Unix-Administrator nicht leben kann [closed]

33

Ohne welche Tools (vorzugsweise über die Befehlszeile) können Sie nach der Verwaltung von Unix- oder Unix-ähnlichen Servern nicht leben?

John T
quelle

Antworten:

51

GNU-Bildschirm - unverzichtbar, wenn Sie eine große Anzahl von Systemen verwalten und nicht möchten, dass ein Dutzend Terminalfenster geöffnet ist.

Murali Suriar
quelle
34

Einige, von denen ich weiß, dass ich ohne sie nicht leben kann ...

  • tee - Ermöglicht das gleichzeitige Schreiben von STDOUT (Standardausgabe) und einer Datei. Hervorragend zum Anzeigen und Protokollieren von Informationen.

  • top - der Task-Manager von UNIX gibt einen guten Überblick über das System.

  • tail -f - Mit dieser Option können Sie angehängte Daten anzeigen, während eine Datei wächst. Dies ist ideal für die Überwachung von Protokolldateien auf einem Server.

  • grep - Globaler Ausdruck für reguläre Ausdrücke, ideal zum Durchsuchen des Systems nach Daten in Dateien.

  • df - meldet die Festplattenauslastung der aktuellen Dateisysteme.

  • du - meldet die Festplattennutzung einer bestimmten Datei / eines bestimmten Verzeichnisses.

  • weniger - wird zum Anzeigen von Manpages benötigt! auch nützlich, um die Ausgabe von Befehlen auf leicht auffindbare Weise anzuzeigen.

  • vim / Emacs / nano / pico / ed - Was auch immer Ihr Texteditor Ihrer Wahl sein mag, selbsterklärend, warum er benötigt wird.

John T
quelle
Für diejenigen, die nicht wissen, "weniger" ist eine aktualisierte Version von "mehr". mehr war einschränkend, weil man sich nur über eine Datei vorwärts bewegen konnte, während weniger auch rückwärts scrollen kann. Ah der Humor ... :-)
Iain Holder
8
Ein weiteres nützliches, aber wenig bekanntes Merkmal von less ist, dass Sie jederzeit den Befehl 'v' verwenden können, um mit der Bearbeitung der aktuell angezeigten Datei zu beginnen. Mnemonik ist 'v' für 'vi'.
dr-jan
Und wenn Sie nicht mögen , moreoder less, können Sie immer versuchen most.
Drybjed
Mein bevorzugter PAGER ist jetzt eigentlich w3m. Es hat alle Funktionen von weniger und kann auch als Webbrowser im Textmodus verwendet werden :-) Ich habe auch eine Bash-Funktion verwendet, um vim im Nur-Lese-Modus zu verwenden (auf diese Weise erhalte ich zum Beispiel schön gefärbte Unterschiede). Die Bash-Funktion wird nur verwendet, um zu entscheiden, ob '-' (zum Lesen der Standardeingabe) angegeben werden soll oder nicht (für den Fall, dass eine Datei ausgelagert wird). Funktioniert wie ein Zauber, mit Ausnahme von Manpages, auf denen nroff
überschreibt
1
htopist eine "bessere" Version von top.
Alexander Bird
26

So ermitteln Sie, welche Prozesse eine Datei oder ein Verzeichnis verwenden (nützlich, wenn Sie herausfinden möchten, was das Ummounten eines Geräts verhindert)

netstat, um festzustellen, welche Prozesse Netzwerkverbindungen verwenden (besonders nützlich, wenn Sie herausfinden möchten, welcher Dämon an einen bestimmten Port gebunden ist)

Erichui
quelle
1
Wenn Sie lsof haben, brauchen Sie netstat nicht. Verwenden Sie einfach lsof -i
vartec
lsof -n ist meine Lieblingsbeschwörung. Ich pfeife es auf grep, um es zu reduzieren
Matt Simmons
19

Lernen Sie alle grundlegenden Tools, aber lernen Sie Perl.

Perl ist ideal für die Bearbeitung von Text. Da un * x-Operatoren von Textdateien, Pipes, Eingaben und Ausgaben leben, ist Perl eine hervorragende Lösung.

Der zusätzliche Vorteil ist, dass Perl plattformübergreifend ist und Sie eine leicht installierbare Sprache (legen Sie einfach ein Perl-Verzeichnis auf dem Server ab) haben, die Sie bereits kennen, wenn Sie etwas an einer Windows-Box arbeiten müssen.

Und in diesem Gedankengang holen Sie sich auch Cygwin. Wenn Sie ein un * x-Administrator sind und an einer Windows-Box (sogar Ihrem Desktop) mit ls, rm, grep, sed, tail usw. arbeiten müssen, sparen Sie beim Wechseln des Betriebssystems viel Zeit.

Mark Nold
quelle
18
  • sed
  • awk

Die vergessenen Großväter der modernen Skripterstellung. Ich weiß, dass Perl den größten Teil der Liebe bekommt (zusammen mit Bash-Skripten, Python, Ruby und [fügen Sie hier Ihre Lieblingsskriptsprache ein]), und verstehen Sie mich nicht falsch, ich liebe Perl. Ich benutze es fast täglich.

Aber sed und awk sollten nicht vergessen, übersehen oder ignoriert werden. Sed und awk sind in vielen Fällen die besten Werkzeuge für den Job. Schnelle Beispiele sind die Befehlszeilenfilterung mit sed und die schnelle und fehlerhafte Protokollverarbeitung mit awk. Beides könnte in Perl erfolgen, erfordert jedoch mehr Arbeit und Entwicklungszeit.

Christopher Cashell
quelle
13

rsync, besonders in konzert mit ssh. Es ermöglicht ein einfaches und effizientes Kopieren von Dateien von Host zu Host. Wie sind wir jemals ohne ssh und rsync zurechtgekommen? :-)

dr-jan
quelle
12

Netcat.

  • Testen Sie, ob TCP-Dienste empfangsbereit sind.
  • Führen Sie Transaktionen mit Klartextprotokollen wie SMTP durch.
  • Schnelle unsichere Datenübertragung zwischen Maschinen.
  • Telnet-Client-Emulation.

Das Netzwerk Schweizer Taschenmesser, wie man sagt.

Dan Carley
quelle
Ich habe vor kurzem damit begonnen, socat als Netcat-Ersatz zu verwenden, und ich war erstaunt über die Anzahl der Optionen, die es Ihnen bietet. Auf jeden Fall einen Besuch wert, trotz der unheimlichen Anzahl an Schaltern und der seltsamen Syntax.
Marcin
12

Seien Sie ehrlich - früher oder später beschäftigen Sie sich auch mit dem Netzwerk. mtr , tcpdump und tshark sind wirklich nützlich, um zu sehen, was passiert.

pQd
quelle
9

Für schnelle Skripte, Automatisierung usw.:

  • Bash
  • perl

So stellen Sie eine Verbindung zu Ihrem * NIX-Server her:

  • Open SSH (Linux Client)
  • Kitt (Windows-Client)
Colin
quelle
+1 für ... nun, das alles wirklich, aber vor allem Perl. * nix, Windows oder Mac, ich kann mir nicht vorstellen, was ich ohne machen würde.
John Gardeniers
9

Ich verwende die meisten der bereits aufgelisteten Tools, aber hier ist eines, das noch niemand angesprochen hat:

Puppet - System zur Automatisierung von Systemverwaltungsaufgaben

Shaun Hess
quelle
6

Die meisten der Standardantworten sind in anderen Antworten enthalten, daher werde ich mich für Nicht-Standardantworten entscheiden:

  • htop - ideal für das Prozessmanagement;
  • pinfo - lynx - ähnlicher Browser für Info - und Manpages.
vartec
quelle
6

Ein paar nützliche Tools, die ich noch nicht gesehen habe:

  • dstat --nocolor (Übersicht der CPU-, Festplatten-, Netznutzung)
  • iftop (schöner dynamischer Überblick über den Netzwerkverkehr)
  • ccze (Farbe logfiles schön)
  • SSH-Tunnel (kann gelegentlich nützlich sein; siehe Handbuch; -R)
  • erwarten (interaktive, gesprächige Dialogschnittstellen automatisieren, nett, wenn Sie in einer Notlage sind)
asjo
quelle
+1 "tail -f <file> | ccze" = erstaunliche Methode zum Lesen von Protokolldateien.
Lin
+1 fürexpect
Alexander Bird
+1 für dstat. Bester Ersatz für vmstat, iostat, etc. da draußen.
Christopher Cashell
5

ClusterSSH

ClusterSSH steuert eine Reihe von xterm-Fenstern über ein einziges grafisches Konsolenfenster, damit Befehle über eine ssh-Verbindung interaktiv auf mehreren Servern ausgeführt werden können.

Tom Feiner
quelle
... und da ClusterSSH in Perl geschrieben ist, sollten Sie vielleicht Perl lernen.
Brad Gilbert
Was ist der Unterschied zwischen ClusterSSH- und GNU-Bildschirm? oder sind es unterschiedliche umsetzungen desselben konzepts?
Alexander Bird
4

vmstat 1

Gibt Ihnen einen guten Überblick über das Systemverhalten.

Cawflands
quelle
4

pv: Zeigt den Fortschritt langer Operationen an, die umgeleitet werden können. http://www.ivarch.com/programs/pv.shtml

Nützlich, wenn Sie etwas überwachen möchten, das Ewigkeiten in Anspruch nehmen wird, wie das Kopieren / Komprimieren eines Raw-Block-Geräts über das Netzwerk (auf diese Weise erstelle ich paranoide Backups meines 8-GB-Netbooks, bevor ich an wichtigen Dingen wie dem Ändern der Dateisystemeinstellungen arbeite).

Außerdem: Ich werde für ssh, rsync, screen, htop und netcat Zweitstimmen abgeben, wie von den oben genannten Personen erwähnt - allesamt wichtiger als pv, aber pv wurde noch nicht erwähnt. In der Tat ist pv oft eine nützliche Ergänzung, wenn Sie etwas zu oder von Netcat leiten.

David Spillett
quelle
pvkann ein praktisches Werkzeug sein, aber hüte dich davor, es zu überbeanspruchen. Die Weitergabe der Daten wirkt sich absolut auf die Leistung aus (alle Daten müssen ein anderes Programm durchlaufen ). Bei meinem letzten Job haben wir viel Holz verarbeitet. Einer der Jungs entschied sich dafür, pv in alle Protokollverarbeitungsskripte einzufügen, bis wir herausfanden, dass sich die Verarbeitungszeit für sie um etwa 15% verlängerte. Jetzt wird es nur für Aufträge verwendet, die weniger als ein paar Minuten dauern oder bei denen eine Ressourcenbeschränkung besteht (z. B. das Überqueren einer langsamen Netzwerkverbindung).
Christopher Cashell
Guter Punkt, Christopher, obwohl ich noch nie gesehen habe, dass dies eine Leistungsänderung von bis zu 15% zur Folge hat (das meiste, wofür ich verwende, pvist festplatten- oder netzwerkgebundene E / A und nicht CPU / Speichergebunden). Das gleiche Argument ist das Schlüsselwort gegen übermäßigen Gebrauch von catzu (ich benutze manchmal cat, wenn es nicht wirklich gebraucht wird, um die Dinge schön von links nach rechts zu lesen, aber das zusätzliche Kopieren von Daten im Speicher über die Pipe und die Kontextumschaltung kann ein Problem darstellen) messbare Auswirkungen auf die Leistung).
David Spillett
Ja, ich mache das Gleiche. Der Großteil meiner übermäßigen catNutzung beginnt damit cat foo, dass ich den Aufwärtspfeil drücke und dann | [command]zu meiner vorherigen Zeile hinzufüge . Ich weiß, dass ich einen (kleinen) Leistungseinbruch erleide, indem ich die Katze dort drin halte, aber das Verlassen erfordert weniger Aufwand als das Umschreiben / erneute Eingeben des Befehls [command] < foo. Keine Sorge für (die meisten) Ad-hoc-Kommandozeilen, aber nicht ideal für Skripte (so wie ich mich fühle pv, denke ich).
Christopher Cashell
4

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

Maciek
quelle
3

sudo.

Im Ernst, tail -fist nützlich.

Sophie Alpert
quelle
Wenn Sie tail -fmultitail
Marcin
3

Einige, die noch nicht erwähnt wurden:

  • Kopf / Schwanz
  • diff
  • pstree
  • Teer
  • gzip / bzip
  • beobachten
CK.
quelle
+1 pstree ist ziemlich süß.
Lin
3

Teerpfeife!

Das Weiterleiten der Ausgabe von tar an ein anderes Dienstprogramm, an tar, das auf derselben Box ausgeführt wird, oder an tar, das über SSH ausgeführt wird, ist mein bevorzugter Unix-Vorgang der alten Schule zum Verschieben von Dateien von einem Ort an einen anderen.

Dies gibt Ihnen auch die Windows-ähnliche Möglichkeit, einen Ordner in einen anderen zu kopieren und alle Dateien im Quell- und Zielverzeichnis zu speichern.

Jason Luther
quelle
3

iotop ist ein top-ähnliches Programm zum Überwachen der E / A-Zugriffe auf Ihre Festplatten.

Emilio
quelle
Nur auf neueren Kerneln verfügbar, aber sehr schön.
Sean Reifschneider
3

Die meisten dieser Tools werden durch die Verwendung von Bash "Programmable Completion" wesentlich leistungsfähiger. Sie können also beispielsweise Befehlszeilenoptionen durch Tabulatoren ergänzen oder den Namen eines Pakets mit "apt-get install" aussprechen. Es wird auch begrenzt, was Sie für relevante Dateien per Tab vervollständigen - zum Beispiel werden mit "unzip" nur unterstützte Archivdateien vervollständigt.

Es sind wirklich die Köter - wenn Sie es noch nie ausprobiert haben, müssen Sie wahrscheinlich nur Ihre .bashrc fummeln:

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

Dies gilt sicherlich für Ubuntu und Debian. Möglicherweise müssen Sie das Paket auf einigen Linux-Distributionen herunterladen.

Tom Newton
quelle
2

Ein paar Dinge übersehen wollte ich erwähnen.

  • Mit vim -d split screen console diff können Sie die Unterschiede in einer Datei sehr einfach erkennen
  • Mit pdsh können Sie auf einfache Weise einen Befehl auf beliebig vielen Systemen ausführen, entweder seriell oder parallel (Ich bin ein Cluster-Administrator. Ohne diesen Befehl kann ich nicht arbeiten.)
  • Nmon ist wie oben auf Crack. Sie erhalten auf einem einzigen Bildschirm eine großartige Vorstellung davon, was auf einem System vor sich geht. Sie können die Festplatten-E / A, die Netzwerk-E / A-CPU-Auslastung und die Speichernutzung in Echtzeit anzeigen. Zumindest eine sehr unterhaltsame Sache, wenn man ein Profil für ein System erstellt.

Oh, und ich habe vergessen zu erwähnen, dass Sie beim Schreiben immer Korn verwenden sollten. Ich hasse Korn (nicht die Band. Ich liebe die Band :-P), aber es ist buchstäblich überall. Sie können ein Skript nehmen und es zwischen Solaris, AIX und Linux verschieben, ohne sich Gedanken darüber machen zu müssen, ob der Administrator die Berechtigung hatte, Bash zu installieren.

Jackalheart
quelle
2

Ein Werkzeug, das manchmal sehr praktisch ist, ist nohup. Ich verwende es, um Skripte mit entfernten SSH-Clients auszuführen, die eine lange Zeit dauern.

jplourenco
quelle
2

man - um die man-seiten zu lesen.

elinks - um google zu überprüfen, weil ich mich verdammt sicher nicht an alles erinnern kann.

Und Liebe zum Detail und Hartnäckigkeit, denn ohne sie verschwende ich nur Zeit.

pjd
quelle
+1 für Liebe zum Detail und Hartnäckigkeit
Cop1152
2

Bildschirm ist ein Muss, vor allem mit einer guten .screenrc-Datei. Ich habe es so konfiguriert, dass es visuell anzeigt, in welchem ​​Fenster ich mich befinde und mit Strg + Pfeil zwischen ihnen wechseln kann. Für eine einzelne SSH-Sitzung und mehrere Shells ist dies ein Lebensretter.

Nasko
quelle
2

  • vi
  • finden
  • ssh
  • AWK
  • sed
  • netcat
  • Teer
  • ps

  • Maxwell
    quelle
    2

    Ich liebe AWK sowie "für" auf der Kommandozeile.

    Insbesondere, um eine Liste von Befehlen zu erstellen, die ich ausführen und dann alle auf einmal ausführen möchte.

    Brian G
    quelle