Systemverwaltung Sommersemester 2007 am Fachbereich Mathematik und Informatik Automatisierung Daniel...
Preview:
Citation preview
- Folie 1
- Systemverwaltung Sommersemester 2007 am Fachbereich Mathematik
und Informatik Automatisierung Daniel Bwetter
boesswet@inf.fu-berlin.deboesswet@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