36
Systemverwaltung Sommersemester 2007 am Fachbereich Mathematik und Informatik Automatisierung Daniel Bößwetter [email protected] August 2007

Systemverwaltung Sommersemester 2007 am Fachbereich Mathematik und Informatik Automatisierung Daniel Bößwetter [email protected]@inf.fu-berlin.de

Embed Size (px)

Citation preview

  • Folie 1
  • Systemverwaltung Sommersemester 2007 am Fachbereich Mathematik und Informatik Automatisierung Daniel Bwetter [email protected]@inf.fu-berlin.de August 2007
  • Folie 2
  • 2 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Motivation / Inhalt -Warum sollte man den Systembetrieb automatisieren? - Steigerung der Qualitt: Maschinen machen weniger Fehler als Menschen - Schonmal versucht, 1000 User zwischen Unix und Windows synchron zu halten? - Spart Arbeit: der Administrator kann sich um sinnvollere Aufgaben kmmern - Zuverlssigkeit: automatisierte Aufgaben knnen auch zu allen (un-) mglichen Zeiten ausgefhrt werden, oder wenn die Umstnde dies erfordern (z.B. Platte voll) -Inhalt dieser Veranstaltung - Schwerpunkt auf Scripting - Unix und Windows - Wenn die Zeit reicht: Blick ber den Tellerrand Bildnachweis: http://www.flickr.com/photos/rogersmith/ http://www.flickr.com/photos/harshadsharma/ http://www.flickr.com/photos/tin-g/ http://www.flickr.com/photos/rogersmith/ http://www.flickr.com/photos/harshadsharma/ http://www.flickr.com/photos/tin-g/
  • Folie 3
  • 3 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Organisatorisches Termine Vormittags 9-12 Nachmittags 13-15 Pro Block 15 min Pause. Do. 02.08Fr. 02.08...Do. 09.08Fr. 10.08 Unix Crashkurs Unix Tools und Vorbesprechu ng der bung Windows Unix Windows
  • Folie 4
  • Unix Unix sagt niemals bitte. Rob Pike
  • Folie 5
  • 5 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Unix Historie Quelle: de.wikipedia.org
  • Folie 6
  • 6 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Unix Philosophie Mach nur eine Sache, aber mach sie gut. -hochspezialisierte Kommandos (Filter) -Kombinierbarkeit der Kommandos (Pipes) Datei- und Austauschformat ist Text Alles ist eine Datei Offene Standards Portierbarkeit, HW-Unabhngigkeit Multiuser, Multitasking -whoami, id, who, finger -/etc/passwd, /etc/group, root Ken Thompson, Dennis Ritchie Linus Torvalds, Andrew S. Tannenbaum
  • Folie 7
  • 7 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Unix Literatur Suche nach Unix auf amazon.de liefert 898 Ergebnisse Eine gute Einfhrung in Linux ist z.B. Running Linux, Fifth Edition BY MATTHIAS KALLE DALHEIMER, MATT WELSH FIFTH EDITION DECEMBER 2005 MATTHIAS KALLE DALHEIMERMATT WELSH OREILLY Man muss aber kein Geld ausgeben, denn: -es gibt ein Skript im Wiki -Das Linux Documentation Project hat mehrere Bcher online unter http://www.tldp.orghttp://www.tldp.org -Das Linux Anwenderhandbuch und Leitfaden fr die Systemverwaltung (Sebastian Hetze, Dirk Hohndel, Olaf Kirch, Martin Mller) http://www.linux-ag.de/linux/LHB/LHB.html
  • Folie 8
  • 8 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Unix Basics Grafische Oberflchen -X11 -KDE -Gnome Shells als Kommandozeilen-Interpreter -Interaktiv -Scripting Kommandos -Meistens ausfhrbare Programme -Manchmal Shell-intern -Optionen Manualseiten (man-pages) - fr die meisten Kommandos, Systemaufrufe, Dateiformate, Funktionen vorhanden -Wow, das Unix-Handbuch! (Garth in Waynes World)
  • Folie 9
  • Das Unix Dateisystem Definition, Attribute, Berechtigungen, Kommandos
  • Folie 10
  • 10 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Unix Dateisystem (Fast) alles unter Unix lsst sich als Datei betrachten -Daten-Dateien -Peripherie-Gerte (/dev) -Prozesse - Named Pipes - /proc -Netzwerk-Verbindungen und IPC - Offene Sockets knnen immer wie offene Dateien verwendet werden. - Named Pipes & Unix Domain Sockets -Hauptspeicher (RAM-Disk)
  • Folie 11
  • 11 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Unix Dateisystem Terminologie und Kommandos Was ist ein Unix-Dateisystem? -Eine Baumstruktur aus benamten Dateien und Verzeichnissen (Wurzel /) -Eine formatierte Festplatten-Partition -Eine Datenstruktur fr Festplatten und Wechselmedien - UFS, ext2, ext3, ReiserFS - NFS-Protokoll -Sonstige Dateisysteme - ISO9660, FAT, NTFS - SMB-Protokoll Wichtige Kommandos dfAnzeige des Platzverbrauchs aller Partitionen pwd, cdAktuelles Verzeichnis ausgeben/wechseln lsVerzeichnisinhalt auflisten more, less, catText-Dateien lesen, konkatenieren mkdir, rmdirLeeres Verzeichnis anlegen/lschen cp, mv, rmDatei kopieren/verschieben (umbenennen)/lschen findDateisystemobjekte finden fileDateityp-Erkennung
  • Folie 12
  • 12 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Unix Dateisystem Eigenschaften von Dateien Eigenschaften von Dateien und Verzeichnissen unter Unix -Name -Eigentmer und Eigentmer-Gruppe (als numerische UID/GID) -Zeitstempel (also 32bit Timestamp) - access time - modification time - change time -Link-Zhler -Typ - Datei - Verzeichnis - Symbolische Links - Gerte (Zeichen- und Blockgerte) - Unix Domain Sockets - Pipes -Zugriffsrechte
  • Folie 13
  • 13 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Unix-Dateisystem - Zugriffsrechte set uid set gid sti cky rwx user read write execute rwx group read write execute rwx other read write execute Oktal-Darstellung 000 110 100 100 = 0644 100 111 101 101 = 4775 ls l -rw-r--r- -rwsr-xr-x Dateitypen (erstes Zeichen): - = Datei d = directory (Verzeichnis) l = Link (symbolic link) s = Socket (Unix Domain Socket)... FileDirectory rLesenListen wSchreibenAnlegen xAusfhrenchdir()
  • Folie 14
  • 14 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Unix-Dateisystem Zugriffsrechte II Beispiele /bin/ls /tmp /dev /etc/shadow /usr/bin/sudo /bin/netcat Weitere Kommandos statAnzeigen von Datei-Attributen touch Zeitstempel von Dateien ndern / leere Datei anlegen, falls diese nicht existiert lnSymbolischen Link oder Hardlink anlegen chownndern des Eigentmers von Dateisystemobjekten chgrpndern der Gruppe von Dateisystemobjekten chmodndern von Zugriffsrechten von Dateisystemobjekten
  • Folie 15
  • 15 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Ein praktisches Beispiel Problem: finde alle core-Files auf lokalen Dateisystemen. Gib Pfad, Gre und Eigentmer aus und wenn die Datei lter als 7 Tage ist, lsche sie. Lsung: find / -type f \( -fstype ext2 o fstype ext3 \) -name core -ls -mtime +7 -exec rm {} \; - Lazy evaluation Ab der Wurzel Auf lokalen Dateisysteme n Datei Name core Infos ausgebe n Dann lschen lter als 7 Tage
  • Folie 16
  • Die Unix Prozesshierarchie Definition, Lebenszyklus, Kommandos, Beispiele
  • Folie 17
  • 17 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Unix Prozesse Definition Ein Unix Prozess ist ein Programm whrend der Ausfhrung. Attribute eines Prozesses -Systemweit eindeutige numerische ID (PID) -Effektiver Eigentmer (EUID), effektive Gruppe (EGID) * -ID des Eltern-Prozesses (PPID, die Prozess-Hierarchie ist ein Baum!) -Offene Dateien (inklusive der Lese-Position) * -Umgebungsvariable (Name-Wert-Paare) * -Aktuelles Arbeitsverzeichnis * -Code-Segment und Programmzhler * - * Bei der Erzeugung geerbte Informationen Beendet sich ein Prozess, liefert er einen numerischen Status an seinen Elter- Prozess, der diesen mit wait() abfragen muss. Init-Prozess -erster nach dem Systemstart erzeugter Prozess (PID 1) -Erzeugt alle weiteren Prozesse, die fr Benutzeranmeldungen erforderlich sind -Dient als Eltern-Prozess fr verwaiste Prozesse
  • Folie 18
  • 18 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Unix-Prozesse - Lebenszyklus ParentChild wait() vor exit() Blockiert oder luft weiter Luft weiter exit() vor wait() Luft weiter (erhlt SIGCHLD) Wird zum Zombie bis zum wait() Unbe- handeltes Signal an Parent Verschwindet Wird auch gekillt Parent beendet sich VerschwindetBekommt init als Parent- Prozess (der auf alle Prozesse wartet)
  • Folie 19
  • 19 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Unix-Prozesse Erzeugung und Kommandos fork(2) erzeugt nur einen Kindprozess als Kopie: If ( ( pid = fork() ) > 0 ) { // Parent-Prozess, PID in pid } else { // Kind-Prozess } Um ein anderes Programm auszufhren, muss dieses mittels exec(3) in den neuen Kindprozess geladen werden. Kommandos psProzessliste ausgeben pstreeProzessliste als Baum ausgeben top Prozesse in Echtzeit, sortiert nach Ressourcenberbrauch killSignal an Prozess senden (Prozess beenden)
  • Folie 20
  • 20 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Unix-Prozesse Beispiele Xeyes stoppen und weiterlaufen lassen /proc Warum muss cd als Shell-Builtin implementiert sein, pwd jedoch nicht? Zombie erzeugen: perl -e 'if ((my $pid = fork() ) > 0) { print $pid."\n"; while(1){} } else { exit }' Prozess an init hngen: perl -e 'if ((my $pid = fork() ) == 0) { while(1){} } else { print $pid.\n ; exit }'
  • Folie 21
  • Arbeiten mit Unix-Shells Einfhrung, interaktives Arbeiten, Manualseiten, Variable, Expansion, Job-Kontrolle
  • Folie 22
  • 22 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Unix-Shells Ursprnglich als Schnittstelle zwischen Benutzer und Kern (Schale) Sowohl interaktiv bedienbar als auch als Skriptsprache verwendbar 2 groe Familien von Shells: -Bourne-Shell kompatibel - Sh / POSIX-Shell - Bash (wird in dieser Lehrveranstaltung verwendet) - Korn-Shell - Z-Shell -C-Shell kompatibel - Csh - Tcsh
  • Folie 23
  • 23 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Bash interaktives Arbeiten Kommandozeilen-Editor -Pfeiltasten auf/ab fr Historie -Pfeiltasten rechts/links, Pos1, End fr Bewegung innerhalb der Zeile - vervollstndigt Kommando bzw. Dateiargumente Manualseiten, man-Kommando Variable -Shell-Variable -Environment-Variable Expansion von Sonderzeichen -Shell-Globs *, ? -Tilden-Expansion ~ -Variablen-Expansion ($var, $PS1, $$, $?, ) -Quotes -Maskierung mit \ oder -Kommando-Substitution $() oder Backticks ``
  • Folie 24
  • 24 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Bash Beispiele zur Expansion -Shell-Globs *, ? * /bin/l* /bin/l?.d -Tilden-Expansion ~ -Variablen-Expansion ($var, $PS1, $$, $?, ) -Quotes Dateinamen mit Spaces -Maskierung mit \ oder -Kommando-Substitution Logfile-Name mit `date`
  • Folie 25
  • 25 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Bash I/O Umleitung Jeder Prozess hat normalerweise 3 geffnete Dateien -Standardeingabe stdin (Filehandle 0) -Standardausgabe stdout (Filehandle 1) -Standardfehlerausgabe sterr (Filehandle 2) Diese sind fr gewhnlich mit dem Terminal des Benutzers verbunden (also Eingabe durch die Tastatur, Ausgabe auf den Bildschirm), knnen jedoch auf der Kommandozeile umgeleitet werden: - stdin kann mit < Datei mit einer Datei verknpft werden - stdout kann mit > Datei mit einer Datei verknpft werden - stderr kann mit 2> Datei mit einer Datei verknpft werden Beispiele grep root /tmp/out.txt 2> /tmp/err.txt ls l > /tmp/out_and_err.txt 2>&1
  • Folie 26
  • 26 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Bash Hintergrund-Prozesse & Job-Kontrolle Hintergrund-Prozesse startet man mit & am Zeilenende: find / -name \*.jpg > /tmp/find_out 2>&1 & (sinnvollerweise mit umgeleiteter IO!) Job-Kontrolle - Vordergrund-Auftrag stoppen: Strg-Z - Liste der Jobs: jobs - Job in den Vordergrund holen: fg [ ] - Job im Hintergrund weiterlaufen lassen: bg [ ] Beispiele grep im Hintergrund starten vi unterbrechen xeyes in den Hintergrund
  • Folie 27
  • 27 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Bash komplexe Kommandos Sequentielle Ausfhrung: $ date ; sleep 10 ; date Logisches UND/ODER der Return-Codes (Lazy-Evaluation) $ test f /tmp/xxx || touch /tmp/xxx $ test f /tmp/xxx && rm /tmp/xxx Pipelines (Ausgabe eines Kommandos als Eingabe fr das nchste): $ ls l / | grep bin Kommandos find, xargs head, tail f, tee
  • Folie 28
  • 28 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Bash - Kontrollstrukturen Bedingte Ausfhrung if ; then ; else ; fi case in ) ;; ) ;; *) ;; esac Schleifen for var in ; do ; done while ; do ; done Kommandos: seq
  • Folie 29
  • 29 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Bash Beispiel Wir wollen in einem Verzeichnis alle.c-Dateien in.c~ umkopieren, um diese ggfs. spter wieder herstellen zu knnen. find. name *.c | while read name ; do mv $name $name~ ; done Oder (nicht rekursiv) for name in *.c ; do mv $name $name~ ; done
  • Folie 30
  • 30 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Aufgabe Finden Sie heraus, wie man in der bash(1) den Prompt verndert und setzen sie den Prompt so, dass er immer folgendes Format hat: 2001-08-01-09:31:45: usr > Wobei am Anfang das aktuelle Datum und die Uhrzeit stehen und usr das letzte Pfadelement des aktuellen Arbeitsverzeichnisses ist (hier knnte der User sich also in /usr oder in /server/usr befinden). Tipp: fr den Pfad-Anteil knnte das Konstrukt ${parameter##word} hilfreich sein.
  • Folie 31
  • Shell Scripting Scripte editieren und ausfhrbar machen
  • Folie 32
  • 32 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Shell-Scripte Shell-Scripte sind Textdateien, die... -... Kommandos enthalten, die von der Shell verstanden werden -... als erste Zeile einen Shell-Bang mit dem Pfad zum entsprechenden Interpreter haben (z.B. #!/bin/bash) -... Ausfhrbar sind (chmod +x script.sh) Wenn das Script nicht im Suchpfad liegt: ausfhren mit Pfadangabe! Texte editieren: natrlich mit vi(m)! (Der sagt brigens auch nie bitte.)
  • Folie 33
  • 33 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Vi Crashkurs -Start des Editors mit vi datei oder vim datei (Vim darf benutzt werden) -Nach dem Start befindet sich der Editor im Kommando-Modus -Man begibt sich durch eines der Einfge-Kommandos in den Einfge-Modus. -Mit der ESC-Taste verlsst man den Einfge-Modus wieder -Mit : im Kommando-Modus schaltet man in den Colon- oder ex-Modus und kann in der untersten Zeile Befehle eingeben. - Speichern mit :w - Beenden mit :q oder :q! (wirklich ohne speichern beenden) - Speichern und beenden mit :wq -Es gibt eine Referenz-Karte unter http://tnerual.eriogerg.free.fr/vimqrc.pdf (Google nachvim refcard)http://tnerual.eriogerg.free.fr/vimqrc.pdf ESC I, i, o, O, a, A... Colon-Mode : Command-ModeInsert-Mode
  • Folie 34
  • Zeitgesteuerte Ausfhrung cron und at
  • Folie 35
  • 35 Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung
  • Folie 36
  • Unix Tools Textverarbeitung mit grep, sed, awk