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?

Antworten:



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.


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)


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.


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.


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? :-)


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.


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.


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)

+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



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.

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)

+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.


... 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

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.


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 :)



3

Einige, die noch nicht erwähnt wurden:

  • Kopf / Schwanz
  • diff
  • pstree
  • Teer
  • gzip / bzip
  • beobachten

+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.



3

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


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.



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.


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.


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.


+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.



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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.