
Ich bin kein Systemadministrator, aber ich habe gute Kenntnisse über Linux, Unix, Windows und Hardware.
Welche Themen sind am wichtigsten und müssen von einem Linux-Administrator auswendig gelernt werden (um Probleme beheben, einrichten und lösen zu können, ohne das Handbuch vollständig lesen zu müssen; dazu muss er die Manpages prüfen, die bei allen Distributionen üblich sind)?
DerFOKUSIch möchte dafür Folgendes festlegen: vom Firmennetzwerk bis zur Serververwaltung, die möglicherweise dieselben Funktionen hat, aber meistens auch unterschiedliche. Beispielsweise werden Sie für einen Firmenserver nicht immer einen FTP-Server sehen, aber wahrscheinlich meistens Samba ...
Ich meine nicht „ein Buch, das Sie unbedingt lesen müssen“ oder ähnliches, sondern ich meine die notwendigsten Funktionen, die Sie wahrscheinlich im Alltag als Linux-Administrator brauchen werden.
Wie:
- Kernel, iptables
- Sendmail, Postfix, qmail, exim
- Tintenfisch, Samba, NFS, LDAP
- Apache, ngxix, lighthttpd
- vsftpd, proftpd
- binden
- Tägliche Probleme
- Welche Funktion haben Sie im Laufe des Tages am häufigsten genutzt?
Dies ist weder eine geordnete Liste noch die am meisten benötigte. Es nennt nur etwas, das mir in den Sinn kam.
PS: Ich verfüge bereits über die Grundkenntnisse, habe aber keine tägliche Erfahrung auf dem Gebiet. Ich hatte Server, habe einige Netzwerke erstellt und so weiter. Darüber hinaus verfüge ich in einigen Bereichen sogar über tiefgreifende Kenntnisse. Ich wollte das hier nur aktualisieren, wie gesagt, dies ist eher eine TÄGLICHE LISTE ÜBER DAS LEBEN EINES LINUX-SYSADMINISTERS.
Ich wäre Ihnen dankbar, wenn Sie die Themen auflisten und beispielsweise angeben könnten, welches Feld darin am häufigsten verwendet wird oder am wichtigsten zum Auswendiglernen ist.
Wenn Sie meinen, dass meine Frage unpassend ist, lassen Sie es mich einfach wissen und ich werde sie selbst löschen. Wenn Sie meinen, dass sie passend ist, aber noch überarbeitet werden muss, lassen Sie es mich ebenfalls wissen und ich werde mein Bestes geben.
Antwort1
Sind Sie wirklich sicher, dass Sie sich um die alltäglichen Dinge kümmern? Ich persönlich denke, dass Sie sich die Dinge merken sollten, die Sie tun müssen, wenn etwas kaputt ist und Ihnen alle im Nacken sitzen, damit das Netzwerk wieder läuft. Die alltäglichen Dinge variieren in der Regel, je nachdem, was Ihre Linux-Boxen in Ihrem Netzwerk tun.
Ich denke, es gibt einige Fähigkeiten, die ziemlich wichtig sind.
Sie müssen in der Lage sein, das Netzwerk nur mithilfe von CLI-Tools wie ifconfig, route und ip zu konfigurieren.
- Ein paar Mal hat ein Kunde angerufen und gesagt, dass seine Linux-Box ausgefallen sei. Ich habe sie eine Live-CD booten lassen. Aber der Server war in einem Netzwerk ohne DHCP (es war das DHCP). Nachdem das System gebootet war, musste ich sie durch den Start des Netzwerks und SSH führen, damit ich eine Remoteverbindung herstellen und ihnen helfen konnte, den Defekt zu diagnostizieren und zu beheben.
- Möglicherweise haben Sie keinen Zugriff auf das Internet und müssen wissen, wie Sie online gehen.
Ich denke, Sie sollten wissen, wie Sie mit tar, rsync oder dd eine vollständige Sicherung des Systems durchführen. Wenn Sie nicht wissen, wie Sie eine Sicherung durchführen und Dinge wiederherstellen, sollten Sie Systeme mit ziemlicher Sicherheit nicht anfassen. Sie müssen auch sicherstellen, dass vor dem Vornehmen von Systemänderungen Sicherungen durchgeführt werden.
Ich denke, Sie sollten wissen, wie Sie von einer Live-CD auf die Dateisysteme auf Ihren Servern zugreifen. Das heißt, Sie sollten wissen, wie Sie LVM und Software-RAID-basierte Laufwerke aktivieren, auf Partitionsinformationen zugreifen und die Dateisysteme mounten.
- Wenn Ihr Server nicht mehr booten kann, müssen Sie möglicherweise auf das Dateisystem zugreifen und etwas reparieren. Es wird ziemlich mühsam sein, im Notfall herauszufinden, wie man Dinge tatsächlich mountet. Bereiten Sie sich rechtzeitig darauf vor.
- Sie sollten mit dem Bootvorgang vertraut genug sein, um beim Booten Änderungen vornehmen zu können. Die meisten Systeme verwenden GRUB, aber Sie können auch auf LILO stoßen.
- Wichtig ist, dass Sie wissen, wie Sie in verschiedene Runlevel, beispielsweise den Einzelbenutzermodus, booten.
- Ich denke, Sie sollten zumindest über Grundkenntnisse verfügen, wie Sie mit tcpdump einige grundlegende Daten erfassen und die Ergebnisse lesen können. Alle netten GUI-Funktionen in Wireshark sind nett, aber wenn etwas nicht funktioniert, können Sie möglicherweise nicht auf Wireshark zugreifen.
- Es gibt eine Vielzahl von Netzwerkproblemen, die ich durch einfaches Ausführen von tcpdump schnell identifizieren und lösen konnte.
Antwort2
Wissen Sie, welche Werkzeuge Sie haben
Du wirst es nie wissenallesim Voraus. Aber Siedürfenwissen, womit Sie arbeiten müssen. Je mehr Werkzeuge Sie kennen, desto mehr können Sie verwenden. Wenn Sie wissen, was das Werkzeug ist, was es tut und wo Sie weitere Informationen dazu finden, reicht das für den Anfang aus.
Machen Sie sich gründlich mit den man
Seiten vertraut. Sie müssen sie nicht auswendig lernen, aber Sie sollten wissen, wo Sie das Gesuchte finden. man
Seiten sind besser als Google, wenn es darum geht, Syntaxdetails nachzuschlagen, da die auf einem bestimmten System installierten Seiten die verschiedenen Eigenheiten oder versionsspezifischen Informationen widerspiegeln, die dem von Ihnen betrachteten System entsprechen.
Wenn Sie apache
häufig verwenden, empfehle ich Ihnen, die Apache-Konfigurationssyntax zu lernen. Wenn Sie nginx
stattdessen verwenden, lernen Sie stattdessen diese. Aber in jedem Fall sollten Sie wissen, was beides ist und worin sie sich unterscheiden.
Systemtools
Es gibt einige Tools, die Ihnen helfen, egal welche Art von Sysadmin-Arbeit Sie erledigen. Vorausgesetzt, Sie kennen die Grundlagen, wie chmod
, mount
usw., sind hier einige sehr hilfreiche Tools, die manche Administratoren nicht gut genug verstehen:
- rsync
- sar / iostat(Teil des Sysstat-Pakets)
- setfacl / getfacl(die meisten Administratoren denken, dass chmod/chown alles ist, womit Sie arbeiten können)
- curl und/oder wget
- iptables
- wer / zuletzt / w
Befehlszeilen-Ninja
Ich würde sagen, dass ein solides Verständnis von Shell-Skripting Wunder bewirkt, wenn es darum geht, schwierige Dinge schnell und einfach zu erledigen. Wenn Sie die Syntax nachschlagen müssen, werden Sie dies wahrscheinlich gar nicht tun. Daher ist es wichtig, dies im Voraus zu wissen.
Nehmen wir beispielsweise an, Sie haben ein Verzeichnis voller mysqldump
„.sql“-Dateien, von denen jede eine Datenbank darstellt, 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 einfach einen Befehl eingeben und sich dann einen Kaffee holen:
Hinweis: Ich habe es der Lesbarkeit halber in einzelne Zeilen aufgeteilt. Wenn Sie die Semikolons drin lassen, können Sie alles in eine Zeile schreiben. Andernfalls sind die Semikolons am Ende jeder Zeile nicht erforderlich.
for FILE in *.sql; do
NAME=${FILE%.sql};
mysql -e "create database $NAME";
mysql $NAME < $FILE;
done
Außerdem empfehle ich, Ihre Kenntnisse im Umgang mit aufzufrischen sed
. Betrachten Sie es als eine Möglichkeit, 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 für den Fall, dass Ihnen etwas misslingt, eine Sicherungskopie speichern).
sed -i.bak 's/555-1234/555-4321/' *.html
Es kann auch sehr hilfreich sein, zu wissen, wie man vorhandene Tools richtig verknüpft, um neue Dinge zu tun. Angenommen, Sie müssen dasselbe wie oben tun, 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, etwas Erfahrung mit zu haben perl
. Sie müssen damit vielleicht keine ernsthaften Programme schreiben, aber es wurde entwickelt, um viele der Dinge zu tun, die sed
und awk
tun, nur vielleicht ein wenig flexibler.
Perl kann mit der Option für magische Kommandozeilenaufgaben verwendet werden -e
. Mit -p
, -n
, und -i
können Sie schnell einfache Filter schreiben, die wirklich nützliche Dinge tun. Angenommen, Sie müssen die IP-Adresse aller Personen herausfinden, die im September auf "/admin.php" zugegriffen haben:
perl -ne '
/([^ ]+).*\[..\/Sep\/2010.*\] "GET \/admin.php / and print "$1\n"' < access_log
Sehen Sie? Das war gar nicht so schlimm. Als Systemadministrator wird von Ihnen erwartet, dass Sie wissen, wie diese Dinge funktionieren.
Antwort3
Ich bin ein Windows-Administrator, der sich ein wenig mit Linux beschäftigt, daher bin ich nicht in der Lage, die Frage direkt zu beantworten. Meiner Meinung nach ist jedoch das Wichtigste, was ein Administrator wissen muss, wenn er einmal ein gutes Verständnis der Grundlagen hat, unabhängig vom Betriebssystem:WoUndWieum die Antworten zu finden.
Antwort4
Es gibt ein paar Dinge, die Sie unbedingt wissen MÜSSEN.
Sie müssen Ihre Shell gut verstehen (wie sie Argumente analysiert, wie sie Platzhalter erweitert, wo die kniffligen Sonderfälle liegen).
Sie müssen Dateien bearbeiten können, ohne dass X11 ausgeführt wird.
Sie müssen in der Lage sein, Dateisysteme zu mounten und zu unmounten.
Sie müssen in der Lage sein, neue Informationen schnell aufzunehmen. Denn diese Fähigkeiten brauchen Sie, wenn die gesamte Serverfarm des Unternehmens abgestürzt ist und Sie nur über einen kleinen Konsolenserver (das Wort „Konsole“ steht für „Serieller Port“) und/oder eine sehr langsame VPN-Verbindung (die alles auf X11-Basis viel zu mühsam macht) Zugriff haben. Und das wird passieren, also planen Sie darauf ein.