Was muss ein Linux-Administrator wissen?

16

Ich bin kein Systemadministrator, aber ich habe gute Kenntnisse in Linux, Unix, Windows und Hardware.

Was sind die am häufigsten benötigten Themen, die ein Linux-Administrator auswendig muss (um das Problem zu beheben, einzurichten und zu lösen, ohne das Handbuch unbedingt lesen zu müssen) )?

Das FOCUS, das ich dafür festlegen möchte, ist vom Unternehmensnetzwerk bis zur Serververwaltung, die möglicherweise über die gleichen Funktionen verfügt, meist auch über einige andere Funktionen. Wie zum Beispiel werden Sie nicht immer einen FTP-Server für einen Unternehmensserver sehen, sondern wahrscheinlich die meiste Zeit Samba ...

Ich sage nicht "Buch, das du lesen musst" oder ähnliches, aber ich meinte die notwendigsten Funktionen, die in deinem täglichen Leben als Linux-Administrator wahrscheinlich benötigt werden.

Mögen:

  1. Kernel, Iptables
  2. Sendmail, Postfix, qmail, exim
  3. Tintenfisch, Samba, NFS, LDAP
  4. Apache, ngxix, lighthttpd
  5. vsftpd, proftpd
  6. binden
  7. Tägliche Probleme konfrontiert
  8. Welche Funktion haben Sie tagsüber am häufigsten verwendet?

Dies ist weder eine Liste in der richtigen Reihenfolge noch die am häufigsten benötigte. Es nennt nur etwas, das mir in den Sinn gekommen ist.

PS: Ich habe bereits Grundkenntnisse, aber keine täglichen Erfahrungen auf dem Feld. Ich hatte Server, machte einige Netzwerke und so weiter. Außerdem habe ich in einigen Teilen sogar ein tiefes Wissen. Ich wollte dies hier nur aktualisieren, wie ich sagte, dies ist eher eine tägliche Liste eines Linux-Systemadministrators.

Ich würde mich freuen, wenn ihr Jungs / Mädels Themen auflisten könnt und zum Beispiel, welches Feld darin am häufigsten verwendet wird oder wichtig ist, um es auswendig zu lernen.

Wenn Sie glauben, dass meine Frage nicht geeignet ist, lassen Sie es mich wissen und ich werde sie selbst löschen oder wenn Sie der Meinung sind, dass sie geeignet ist, aber noch überarbeitet werden muss, lassen Sie es mich ebenfalls wissen und ich werde mein Bestes versuchen.

Prix
quelle

Antworten:

19

Sind Sie wirklich sicher, dass Ihnen die täglichen Dinge am Herzen liegen? Persönlich denke ich, dass die Dinge, die Sie auswendig lernen sollten, die Dinge sind, die Sie tun müssen, wenn etwas kaputt ist und jeder Ihren Hals hinunter atmet, um das Netzwerk wieder in Schwung zu bringen. Die täglichen Dinge variieren in der Regel je nachdem, was Ihre Linux-Boxen in Ihrem Netzwerk tun.

Ich denke, es gibt ein paar Fähigkeiten, die ziemlich wichtig sind.

  • Sie müssen in der Lage sein, das Netzwerk mit Cli-Tools wie ifconfig, route und ip zu konfigurieren.

    • Ein paar Mal hat ein Client angerufen und gesagt, eine Linux-Box sei ausgefallen. Ich ließ sie eine Live-CD booten. Der Server befand sich jedoch in einem Netzwerk ohne DHCP (es war DHCP). Sobald das System gestartet wurde, muss ich sie durch das Starten des Netzwerks und von SSH führen, damit ich eine Remoteverbindung herstellen und ihnen bei der Diagnose und Behebung von Fehlern helfen kann.
    • Sie befinden sich möglicherweise an einem Punkt, an dem Sie nicht mehr auf das Internet zugreifen können, und Sie müssen wissen, wie Sie online gehen können.
  • Ich denke, Sie sollten wissen, wie man ein vollständiges Backup des Systems mit tar, rsync oder dd erstellt. Wenn Sie nicht wissen, wie man ein Backup erstellt und Dinge wiederherstellt, sollten Sie Systeme mit ziemlicher Sicherheit nicht berühren. Sie müssen auch sicherstellen, dass Backups erstellt werden, bevor Sie Systemänderungen vornehmen.

  • Ich denke, Sie sollten wissen, wie man von einer Live-CD auf Ihren Servern auf die Dateisysteme zugreift. Dies bedeutet, dass Sie wissen müssen, wie Sie LVM- und Software-RAID-basierte Laufwerke aktivieren, auf Partitionsinformationen zugreifen und die Dateisysteme bereitstellen.

    • Wenn Ihr Server nicht mehr bootfähig ist, müssen Sie möglicherweise auf das Dateisystem zugreifen und etwas korrigieren. Es wird ziemlich schmerzhaft sein, herauszufinden, wie man Dinge im Notfall tatsächlich montieren kann. Seien Sie rechtzeitig vorbereitet.
  • Sie sollten mit dem Startvorgang vertraut genug sein, um Änderungen beim Start vornehmen zu können. Die meisten Systeme verwenden GRUB, aber möglicherweise stoßen Sie auf LILO.
    • Wichtig ist, dass Sie wissen, wie Sie verschiedene Run-Levels starten, z. B. Einzelbenutzer.
  • Ich denke, Sie sollten mindestens über Grundkenntnisse im Umgang mit tcpdump verfügen und in der Lage sein, die Ergebnisse zu lesen. Alle netten GUI-Funktionen in Wireshark sind nett, aber wenn etwas kaputt geht, können Sie möglicherweise nicht auf Wireshark zugreifen.
    • Es gibt eine große Anzahl von Netzwerkproblemen, die ich durch Ausführen von tcpdump schnell identifizieren und beheben konnte.
Zoredache
quelle
Sehr nette Punkte zum Thema Netzwerk und Dateisystem gemacht schätzen die Antwort :)
Prix
Are you really sure you care about the day-to-day things?mmmmm aber inst Probleme, die Teil des täglichen Lebens eines Menschen passieren? die Sie zu Funktionen verwendet zum Beispiel führen Netzwerk ifconfig dhcp wie Sie gesagt haben ... debug auf welcher Ebene das Problem passieren, usw.
Prix
10
Gute Argumente. Auch in diesem Sinne: Sie sollten die Grundlagen des vi-Editors kennen. Unabhängig davon, ob Sie für Ihre tägliche Bearbeitung Joe, Pico, Emacs oder MS Word verwenden, sind diese in einem Rettungssystem nicht verfügbar, und vi ist anders ;)
Sven
1
Danke, ich habe nach einer Ausrede gesucht, um mehr zu lernen als: q! befehl in vi.
7.
nano und vi / vim sind normalerweise universell verfügbar, obwohl ich nur Systeme mit nano gesehen habe
Fahad Sadah
11

Wissen, welche Tools Sie haben

Sie werden nie alles vorher wissen . Aber Sie können wissen, womit Sie arbeiten müssen. Je mehr Tools Sie kennen, desto mehr können Sie verwenden. Wenn Sie wissen, was das Tool ist, was es tut und wo Sie weitere Informationen dazu finden, ist dies für den Anfang ausreichend.

Machen Sie sich mit den manSeiten wirklich vertraut . Sie müssen sie nicht auswendig lernen, aber Sie sollten wissen, wo Sie das finden, wonach Sie suchen. manBei der Suche nach Syntaxdetails sind Seiten besser als Google, da die auf einem bestimmten System installierten Seiten die verschiedenen Macken oder versionsspezifischen Informationen widerspiegeln, die dem von Ihnen betrachteten System entsprechen.

Wenn Sie apacheviel verwenden, empfehle ich, die Apache-Konfigurationssyntax zu erlernen. Wenn Sie nginxstattdessen verwenden, dann lernen Sie das stattdessen. Auf jeden Fall sollten Sie wissen, was beide sind und wie sie sich unterscheiden.

Systemwerkzeuge

Es gibt einige Tools, die Ihnen helfen, egal welche Art von Sysadmin-Arbeit Sie ausführen. Vorausgesetzt , dass Sie die Grundlagen kennen, wie chmod, mountetc., sind hier ein paar sehr hilfreiche Tools einige Administratoren verstehen nicht gut genug:

  • rsync
  • sar / iostat (Teil des sysstat-Pakets)
  • setfacl / getfacl (Die meisten Administratoren denken, dass chmod / chown alles ist, mit dem Sie arbeiten müssen.)
  • locken und / oder wget
  • iptables
  • wer / letzte / w

Befehlszeile Ninja

Ich würde sagen, dass ein solides Verständnis von Shell-Skripten Wunder bewirken kann, wenn es darum geht, schwierige Dinge schnell und einfach zu machen. Wenn Sie die Syntax nachschlagen müssen, ist es wahrscheinlich, dass Sie dies überhaupt nicht tun. Daher ist es wichtig, dass Sie sich im Voraus bewusst sind.

mysqldumpAngenommen , Sie haben ein Verzeichnis voller ".sql" -Dateien, die jeweils eine Datenbank darstellen, die in den Server importiert werden muss. Importieren Sie alle 35 manuell? Wenn Sie einigermaßen mit Shell-Skripten vertraut sind, können Sie ganz schnell und einfach einen Befehl eingeben und dann einen Kaffee trinken gehen:

Hinweis: Ich habe es aus Gründen der Lesbarkeit in separate Zeilen aufgeteilt. Wenn Sie die Semikolons in lassen, können Sie alles in eine Zeile setzen. Andernfalls werden die Semikolons nicht am Ende jeder Zeile benötigt.

 for FILE in *.sql; do 
   NAME=${FILE%.sql}; 
   mysql -e "create database $NAME"; 
   mysql $NAME < $FILE; 
 done

Außerdem empfehle ich, die Verwendung zu verbessern sed. Stellen Sie sich das als Möglichkeit vor, reguläre Ausdrücke überall anzuwenden. http://www.grymoire.com/Unix/Sed.html

Angenommen, Sie haben Ihre Telefonnummer geändert und müssen alle Ihre Webseiten entsprechend aktualisieren (und eine Sicherungskopie speichern, falls Sie etwas falsch machen).

sed -i.bak 's/555-1234/555-4321/' *.html

Zu wissen, wie vorhandene Tools richtig verkettet werden, um neue Dinge zu tun, kann ebenfalls sehr hilfreich sein. Angenommen, Sie müssen dasselbe tun wie oben, aber auch in Unterverzeichnissen suchen -

find public_html -name '*.html' -print0 | xargs -0 sed -i.bak 's/555-1234/555-4321/'

Es ist auch nützlich, Erfahrung mit zu haben perl. Sie müssen vielleicht keine ernsthaften Programme damit schreiben, aber es wurde entwickelt, um viele der Dinge zu tun, die sedund die es awktun, nur vielleicht ein bisschen flexibler.

Perl kann verwendet werden, um Befehlszeilenmagie mithilfe der -eOption auszuführen. Mit Hilfe mit -p, -nund -iSie können schnell einfache Filter schreiben wirklich nützliche Dinge zu tun. Angenommen, Sie müssen die IP-Adresse aller Benutzer ermitteln, die im September auf "/admin.php" zugegriffen haben:

perl -ne '
  /([^ ]+).*\[..\/Sep\/2010.*\] "GET \/admin.php / and print "$1\n"' < access_log

Sehen? Das war nicht so schlimm. Von Ihnen als Sysadmin wird erwartet, dass Sie wissen, wie man dieses Zeug macht.

tylerl
quelle
+1 @tylerl sehr nette Punkte, die hier gemacht wurden ... Ich benutze oft Perl, um die meisten Dinge festzunageln, die ich mit der Kommandozeile tun muss, und ich kann Ihnen versichern, dass das ein Muss ist! Würde es Ihnen etwas ausmachen, einige Probleme zu posten, die Sie normalerweise auch ausführen? Ich würde gerne auch darüber lesen, nachdem ich die Antwort von Zoredache gelesen hatte, stellte ich fest, dass in diesen Dingen viele nützliche Dinge auftauchen. Sehr geschätzt !
Prix
9

Ich bin ein Windows-Administrator, der sich ein wenig mit Linux beschäftigt und daher nicht in der Lage ist, die Frage direkt zu beantworten. Meiner Meinung nach muss ein Administrator, wenn er die Grundlagen erst einmal richtig verstanden hat, unabhängig vom Betriebssystem wissen, wo und wie er die Antworten findet.

John Gardeniers
quelle
Info-Mining ist eine meiner Topfähigkeiten. Ich benutze es ständig im Dienst.
sysadmin1138
Nun, ich habe bereits Grundkenntnisse, aber ich habe keine alltägliche Erfahrung auf dem Gebiet, ich habe Server gehabt, einige Netzwerke aufgebaut und deswegen habe ich sogar einige tiefe Kenntnisse in so Teilen davon ... aber ich würde gerne Um dieses Wissen mit dem zu erweitern, was wirklich täglich für ein Linux-SysAdm verwendet wird, und um von dort aus mehr zu erfahren ... Ich konzentriere mich mehr darauf, eine tägliche Lebensliste daraus zu machen :)
Prix
2

Neben den anderen Antworten:

Ich denke, Sie sollten auch wissen, wie man mit den Prozessen umgeht:

  • Grundkenntnisse, wo man Sachen in / proc findet
  • ps, top, vmstat und einige ihrer anspruchsvolleren Ableger (ntop, htop usw.)
  • wissen, wie man die Ausgabe von mindestens einem guten Überwachungswerkzeug wie Nagios (möglicherweise Overkill) oder Munin interpretiert.

Ich denke, du musst sed nicht beherrschen (ich weiß, zumindest nicht), ich komme mit einem der Greps (grep, egrep, zgrep, etc) problemlos zurecht. Sie müssen jedoch die grundlegende Syntax für reguläre Ausdrücke kennen.

Ich denke, Sie sollten grundlegende Befehle kennen, um MTA (postfix oder exim) und MDA (dovecot, cyrus, courier) zu manipulieren und / oder zu überwachen, wenn Sie einen Mailserver betreiben. Selbst wenn Sie keinen ausführen, müssen Sie in der Lage sein, grundlegende SMTP-Tests auf einem MTA auszuführen, wenn auch nur bei lokalen Zustellungsproblemen.

Sie sollten sich mit dem verwendeten Authentifizierungssystem (PAM, LDAP) auskennen. Wo sind Ihre Passwörter gespeichert? Mit welchen Verfahren? Welche Anwendungen verwenden welche Authentifizierungsmechanismen?

Jaspis
quelle
iotop :) so ein tolles tool kann ich auch mit ps nicht auskommen ... Ja, es sind entweder diese befehle oder eine sprache wie perl, python, php, die du von der befehlszeile ausführen kannst, um das zu tun, was du brauchst.
Prix
2

Es gibt ein paar Dinge, die Sie unbedingt wissen MÜSSEN.

Sie müssen ein gutes Verständnis für Ihre Shell haben (wie sie Argumente analysiert, wie sie Platzhalter erweitert, wo sich die verworrenen Eckfälle befinden).

Sie müssen in der Lage sein, Dateien zu bearbeiten, ohne dass X11 ausgeführt wird.

Sie müssen in der Lage sein, Dateisysteme bereitzustellen und die Bereitstellung aufzuheben.

Sie müssen in der Lage sein, neue Informationen schnell aufzunehmen. Denn dies sind die Fähigkeiten, die Sie benötigen, wenn die Serverfarm des gesamten Unternehmens abstürzt und Sie nur über einen Piddly-Console-Server (das ist "Konsole" wie bei der seriellen Schnittstelle) und / oder eine sehr langsame VPN-Verbindung (was auch alles auf X11-Basis möglich ist) Zugriff haben schmerzlich). Und es wird passieren, also plane es.

Vatine
quelle
2

Die angegebenen Beispiele sind allesamt großartige Server-bezogene Antworten. Die Systemadministration besteht jedoch nie zu 100% aus Computern. Ich wünschte, das wäre es!

Sie müssen sich auch mit Menschen auseinandersetzen, in unserem Fall mit Manglement, Lusers, Contractors und Suppliers

Kundendienstfähigkeiten, die wissen, wie man über das spricht, was Sie benötigen / wollen / müssen, Informationen an andere Personen weitergibt , Dokumentation - all dies ist für die Aufrechterhaltung Ihres Sysadmin-Jobs von entscheidender Bedeutung.

Wenn Sie möchten, dass Ihre Projekte finanziert und genutzt werden: Es macht keinen Sinn, einen neuen Server zu suchen, wenn Sie nicht wissen, wie Sie um Geld bitten sollen, wenn Sie nicht über die Zahlen / Alternativen / DR-Plan / Quotes / Implementierungsplan verfügen etc .. Büropolitik ist ein B ** CH, Geld ist immer: "Tight" .. was auch immer das bedeutet .. es wirkt sich nicht auf die Execs Firmenwagen aus, aber es wirkt sich auf die Sicherheit Ihrer Site und die Fähigkeit zur Standardisierung aus, wenn Sie können beeindrucken sie nicht Ihre Gründe.

Ich würde das Wichtigste sagen, an das man sich erinnern sollte: VERTRAUEN SIE NICHT, WAS EIN BENUTZER SAGT . Denken Sie daran, wenn Sie den Anruf entgegennehmen. Egal, was sie sagen, Sie müssen es immer noch selbst herausfinden, weil es letztendlich Ihr Arsch ist, nicht ihr Arsch, und sie haben im Allgemeinen keine Ahnung. Nur weil sie einen mit Schlagworten beladenen Absatz zusammenstellen können, um Ihren Chef zu verwirren, heißt das nicht, dass sie tatsächlich wissen, was sie gerade gesagt haben.

Andere Gedanken:

  • Stellen Sie sicher, dass Sie genug Zeit an der USV haben, um alles auszuschalten , WENN der Strom ausfällt

  • Überwachen Sie, stellen Sie sicher, dass Sie wissen, dass es abgefallen ist. Warten Sie nicht, bis die Verlierer anrufen.

  • BACKUPS BACKUPS BACKUPS .. Mehrbenutzersysteme können Überstunden machen, wenn Sie kein gutes Backup-System haben .. Überstunden sind schlecht (nicht für Ihre Tasche, sondern für Ihr Budget und den Anschein von Professionalität).

  • ÄNDERN SIE NIEMALS AN EINEM FREITAG ODER AM TAG VOR EINEM URLAUB. Sie werden über das Wochenende angerufen. Sie müssen das Problem beheben. Sie werden eine wirklich schlechte Zeit haben.

  • Standardisieren und automatisieren ... so viel du kannst! Wenn Sie es schreiben können, warum haben Sie es nicht?

  • Finden Sie heraus, wie Sie ein Helpdesk-System verwenden / installieren, wie Benutzer Anrufe über dieses System protokollieren, wie Sie Ihre Aktivitäten verfolgen, welche Anreize Sie für die geleistete Arbeit erhalten und wie Sie aufzeichnen können Ihre Antworten (defacto KB) .. während Sie den Benutzer über den Fortschritt informieren. Stellt sicher, dass Benutzeranfragen / -probleme nicht in der Flut verloren gehen. (Spiceworks ist kostenlos, es gibt viele andere)

  • Ich kaufte eine Kopie: Die Praxis der Systemadministration , von Limoncelli, ich sehr empfehlen.

Grizly
quelle
1

Ein Linux-Administrator muss die Dateiberechtigungen genau verstehen sowie die Verwendung von Tools wie su und sudo , chmod und chown usw., um einen Benutzer zu einer Gruppe hinzuzufügen oder neue Benutzer zu erstellen, um bestimmten Benutzern SSH-Berechtigungen zu erteilen oder Gruppen.

thomasrutter
quelle
0

Müssen schnell mit einem Editor auf der Kommandozeile sein.

Logan
quelle
0

Lernen sed, grepund awk: eine Menge von dem, was ich tue , täglich als Linux Sysadmin ist Pull - Down eine riesige Liste von Dateien / Computer / Benutzer / etc. und transformieren Sie die Eingabe in eine andere Gruppe von Ausgaben, die von einem anderen Programm verwendet werden sollen.

Ein konkretes Beispiel hierfür ist das Abrufen einer Liste mit kaputten Computern von beispielsweise Bugzilla oder RT, das Entfernen aller überflüssigen Informationen, die ich mithilfe eines der drei oben genannten Tools schnell kopiert und in ein Textdokument eingefügt habe, und das anschließende Ausgeben Eine durch Leerzeichen getrennte Liste mit einer Reihe von Knoten, in die ich SSH ausführen muss.

Außerdem müssen Sie auf jeden Fall die Obergrenzen der von Ihnen verwendeten Shell kennen. Meistens, wenn Sie ein paar veraltete Dateien entfernen müssen, werden Sie wahrscheinlich auf einen Ordner mit mehr als 30.000 Dateien stoßen. rm *funktioniert nicht, da der Stern zu einer Liste mit mehr als 30.000 Einträgen erweitert wird und die von Ihnen verwendete Shell wahrscheinlich keine Liste dieser Größe enthalten kann. Die Art und Weise dies zu lösen ist mit xargs: statt rm *, würden Sie verwenden ls | xargs -i{} rm {}, das wird funktionieren.

Christian Paredes
quelle
0

Als Systemadministrator betrachte ich mich als digitalen Arzt (oder, abhängig vom Tag, manchmal als Weltklasse-Gehirnchirurgen).

Wenn alles funktioniert, haben Sie genügend Zeit, um Ihre eigenen Fähigkeiten und die von Ihnen verwalteten Systeme zu verbessern.

Wenn etwas fehlschlägt, müssen Sie in der Lage sein, das Problem sofort zu diagnostizieren und zu erkennen, wie es behoben werden kann.

Sie müssen also die Grundlagen (und zu einem gewissen Zeitpunkt auch die Interna) der von Ihnen verwalteten Server und Anwendungen lernen / auswendig lernen. Angenommen, Ihr Unternehmen hostet eine Website, deren Webstamm über NFS bereitgestellt wird. Plötzlich beginnen alle WWW-Knoten zu alarmieren und die Site reagiert nicht mehr. Was ist zu vermuten? Ah-ha! Der NFS-Server ist gerade ausgefallen und das Failover-Clustering hat aus irgendeinem Grund auch nicht funktioniert.

Ein weiterer wichtiger Aspekt ist die Grundlast der von Ihnen verwalteten Server. Erfahren Sie, wie Sie sich die durchschnittliche Auslastung, die CPU-Auslastung, die Speichernutzung und ähnliches merken. OK, Sie müssen sich nicht alles merken - Diagramme, die mit Cacti oder net-snmp + mrtg erstellt wurden, können viel helfen, aber wenn sich Ihr Pager-Alarm über Server X seltsam verhält und Sie gleichzeitig vom Helpdesk angerufen werden, um von einem anderen zu erzählen Sie können diese beiden Dinge möglicherweise kombinieren und das Problem beheben, bevor Sie sich die Protokolle, den Alarmverlauf oder die Diagramme ansehen.

Machen Sie sich auch auf das Schlimmste gefasst: Überlegen Sie, was Sie tun würden, wenn das gesamte Rechenzentrum aufgrund eines Stromausfalls ausfallen würde. Wie würden Sie alles hochfahren, nachdem der Strom wieder verfügbar wäre? Was würden Sie tun, wenn etwas nicht anlaufen würde? Wie würden Sie Backups wiederherstellen? Oder was würden Sie tun, wenn Sie jemand auf einen Cracker aufmerksam machen würde, der gerade in Ihre Server eingebrochen ist? (Diese Art von Dingen sollte als Checkliste dokumentiert werden, aber es ist auch gut, eine Art Intuition zu haben.)


Und, wie von anderen erwähnt, fahren Sie fort und schreiben Sie die Dinge, die (halb-) automatisch ausgeführt werden sollen. Lernen und spielen Sie mit der Shell / Perl, sie sind wirklich Ihre besten Freunde und können sehr oft sehr komplexe Probleme mit nur wenigen Befehlen lösen, die zusammen übertragen werden.

Janne Pikkarainen
quelle