Automatisierung Daniel Bößwetter August 2007

Slides:



Advertisements
Ähnliche Präsentationen
Ausführen.
Advertisements

Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
Überwachung des Nagios-Servers
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
C Tutorium – Semaphoren –
Vorgehensweise Website Besprechung am 11. Februar 2008 Gründung und Partnerunternehmen der Wirtschaftsuniversität Wien.
Imperative Programmierung -Entwicklungswerkzeuge
Dateisysteme Was sind Dateisysteme (Definition)
Unix-Shells Shell: Unix-Shell-Varianten:
Dateihandles Um in Perl eine bestimmte Datei zum Lesen, Schreiben oder Anhängen zu öffnen, benötigt man so genannte Dateihandles. Ein Dateihandle ist der.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Grundlagen im Bereich der Tabellenkalkulation
1A: POSIX POSIX (Portable Operating System) ist ein Standard für UNIX-Systeme. Er dient dazu, Programme portabel unter UNIX und Derivaten zu tauschen und.
1 Named Pipes alias FIFO Haben einen Eintrag im Dateisystem und sind somit durch Zugriffsrechte identifizierbar Ermöglichen die Kommunikation zwischen.
Perl-Grundlagen Teile der Präsentation von A. Grupp,
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
© 2006 Prof. Dr. G. Hellberg 1 BASH Shell Working with the bash shell Prof. Dr. G. Hellberg 2006 Working with the bash shell Prof. Dr. G. Hellberg 2006.
Eingabeaufforderung (EA) Windows I Nützliche Kommandos (Kommando und /? liefert meist eine Liste von Optionen): cd bzw. chdir: change directory, wechselt.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Die Skriptsprache Perl (2) Wolfgang Friebel DESY Zeuthen.
UNIX SHELL Christian Benz SS #!/bin/bash.
Excel Kurs Teil I Excel starten, Verknüpfungen auf dem Desktop anlegen. F. Bäumer.
Programmierung 1 - Repetitorium
Batch-Programmierung Grundlagen
UNIX und C Einleitung EDV1 - 01Einführung.
UNIX-Dateisystem Vortrag: Ronny Kuhnert am
Anwendungsprogramm Benutzeroberfläche Schnittstelle für Systemaufrufe Systemkern.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Einrichtung eines File- und Printservers mit
UNIX Linux.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Einleitung Suse Linux (System- und Software-Entwicklung) Allgemein:
Delphi II - OOP IFB Fortbildung
Linux GOIT – Der Kurs. Linux GOIT – Der Kurs Geschichte Mainframes (IBM System/360) Workstation Personal Computer Stapelverarbeitung Workstation Mehrbenutzersystem.
DOS GOIT Der Kurs. Versionen 1.0 (1981 – Erster IBM-PC) 2.0 (1983 – Unterverzeichnisse) 3.0 (1984 – Festplatten) 4.0 (1988 – DOS Shell) 5.0 (1991 – Task.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
© 2000,2001,2002 Rader Udo, bestsolution.at GmbH released under the GNU Free Documentation License, Version 1.1 graphische Oberfläche.
Dateisysteme Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2 Dateisysteme Was ist eine Datei?
Vergleich Windows – Linux I
Seminar Internet Technologien
Linux Universität zu Köln
FORTRAN 77.
Betriebssysteme: Unix
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
PHP Basic.
Dynamische Webseiten-Generierung
Einführung in PHP.
Saia Service an PCD's Datensicherung
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
BMEVIEEA100 Grundlagen der Programmierung
1 Tagesüberblick 2 Lösung Hausaufgabe/Fragen Datei- ein- und ausgabe Schleifen Vergleiche Wahrheit.
Kommandozeile und Batch-Dateien Molekulare Phylogenetik – Praktikum
Einführungstutorial: Linux Konsole
Shell-Programmierung
Übung 2 - MdMT Methoden der Medizintechnik Übung zur Vorlesung Folge 2 – Basics Vom ersten Befehl zum Plot.
1 Tagesüberblick 4 Lösung Hausaufgabe/Fragen Mustervergleiche.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.
Übung Betriebssystem, Uni Innsbruck 1 Projekt1: Prozesse unter Unix Teil I Grundlagen von Unix.
Die Bourne-Shell (cygwin), UNIX- Tools und treetagger Seminar: Strukturierung und Analyse linguistischer Korpusdaten Leiter: Leiter: Dr. Christian Riepl.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Prozesse Alexander Sczyrba Jan Krüger.
1 Grundstruktur von Linux Manuel Blechschmidt & Volker Grabsch CdE Sommerakademie 2006 Kirchheim.
1 Shell Manuel Blechschmidt & Volker Grabsch CdE Sommerakademie 2006 Kirchheim.
IT-Struktur an Schulen
Netzwerk - Programmierung
Linux.
Betriebssysteme LB BB SS2017
 Präsentation transkript:

Automatisierung Daniel Bößwetter boesswet@inf.fu-berlin.de August 2007 Systemverwaltung Sommersemester 2007 am Fachbereich Mathematik und Informatik Automatisierung Daniel Bößwetter boesswet@inf.fu-berlin.de August 2007

Motivation / Inhalt Warum sollte man den Systembetrieb automatisieren? Steigerung der Qualität: 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 kümmern Zuverlässigkeit: automatisierte Aufgaben können auch zu allen (un-) möglichen Zeiten ausgeführt werden, oder wenn die Umstände 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/ Tellerrand: Automounter, Nagios, Tripwire, Orca, Amanda Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Organisatorisches Termine Vormittags 9-12 Nachmittags 13-15 Pro Block 15 min Pause. Do. 02.08 Fr. 02.08 ... Do. 09.08 Fr. 10.08 Unix Crashkurs Unix Tools und Vorbesprechu ng der Übung Windows Unix Ü Windows Ü Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

„Unix sagt niemals ›bitte‹.“ – Rob Pike

Unix Historie Quelle: de.wikipedia.org 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-Unabhängigkeit Multiuser, Multitasking whoami, id, who, finger /etc/passwd, /etc/group, root Ken Thompson, Dennis Ritchie Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung Linus Torvalds, Andrew S. Tannenbaum

Unix Literatur Suche nach „Unix“ auf amazon.de liefert 898 Ergebnisse … Eine gute Einführung in Linux ist z.B. Running Linux, Fifth Edition BY MATTHIAS KALLE DALHEIMER, MATT WELSH FIFTH EDITION DECEMBER 2005  O‘REILLY Man muss aber kein Geld ausgeben, denn: es gibt ein Skript im Wiki Das Linux Documentation Project hat mehrere Bücher online unter http://www.tldp.org Das Linux Anwenderhandbuch und Leitfaden für die Systemverwaltung (Sebastian Hetze, Dirk Hohndel, Olaf Kirch, Martin Müller) http://www.linux-ag.de/linux/LHB/LHB.html URLs zum Download von Linux, Cygwin, OpenSolaris, Unix-Tools für Windows Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Unix – Basics Grafische Oberflächen X11 KDE Gnome Shells als Kommandozeilen-Interpreter Interaktiv Scripting Kommandos Meistens ausführbare Programme Manchmal Shell-intern Optionen Manualseiten („man-pages“) für die meisten Kommandos, Systemaufrufe, Dateiformate, Funktionen vorhanden … „Wow, das Unix-Handbuch!“ (Garth in Waynes World) Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Definition, Attribute, Berechtigungen, Kommandos Das Unix Dateisystem Definition, Attribute, Berechtigungen, Kommandos

Unix Dateisystem (Fast) alles unter Unix lässt sich als Datei betrachten Daten-Dateien Peripherie-Geräte (/dev) Prozesse Named Pipes /proc Netzwerk-Verbindungen und IPC Offene Sockets können immer wie offene Dateien verwendet werden. Named Pipes & Unix Domain Sockets Hauptspeicher (RAM-Disk) 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 für Festplatten und Wechselmedien UFS, ext2, ext3, ReiserFS NFS-Protokoll Sonstige Dateisysteme ISO9660, FAT, NTFS SMB-Protokoll Wichtige Kommandos df Anzeige des Platzverbrauchs aller Partitionen pwd, cd Aktuelles Verzeichnis ausgeben/wechseln ls Verzeichnisinhalt auflisten more, less, cat Text-Dateien lesen, konkatenieren mkdir, rmdir Leeres Verzeichnis anlegen/löschen cp, mv, rm Datei kopieren/verschieben (umbenennen)/löschen find Dateisystemobjekte finden file Dateityp-Erkennung „df .“ für Home!! Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Unix Dateisystem – Eigenschaften von Dateien Eigenschaften von Dateien und Verzeichnissen unter Unix Name Eigentümer und Eigentümer-Gruppe (als numerische UID/GID) Zeitstempel (also 32bit Timestamp) access time modification time change time Link-Zähler Typ Datei Verzeichnis Symbolische Links Geräte (Zeichen- und Blockgeräte) Unix Domain Sockets Pipes Zugriffsrechte Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Unix-Dateisystem - Zugriffsrechte w x user read write execute r w x group read write execute r w x other read write execute set uid gid sti cky Oktal-Darstellung „ls –l“ 000 110 100 100 = 0644 100 111 101 101 = 4775 -rw-r--r–- -rwsr-xr-x File Directory r Lesen Listen w Schreiben Anlegen x Ausführen chdir() Danach ls –l nonchmal zeigen und daran die Hardlinks erklären. Dateitypen (erstes Zeichen): - = Datei d = directory (Verzeichnis) l = Link (symbolic link) s = Socket (Unix Domain Socket) ... Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Unix-Dateisystem – Zugriffsrechte II Beispiele /bin/ls /tmp /dev /etc/shadow /usr/bin/sudo /bin/netcat Weitere Kommandos stat Anzeigen von Datei-Attributen touch Zeitstempel von Dateien ändern / leere Datei anlegen, falls diese nicht existiert ln Symbolischen Link oder Hardlink anlegen chown Ändern des Eigentümers von Dateisystemobjekten chgrp Ändern der Gruppe von Dateisystemobjekten chmod Ändern von Zugriffsrechten von Dateisystemobjekten Frage: welcher User darf was lesen/schreiben/ausführen? Warum keine Hardlinks auf Verzeichnisse? ACLs! Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Ein praktisches Beispiel … Problem: finde alle core-Files auf lokalen Dateisystemen. Gib Pfad, Größe und Eigentümer aus und wenn die Datei älter als 7 Tage ist, lösche sie. Lösung: find / -type f \( -fstype ext2 –o –fstype ext3 \) -name core -ls -mtime +7 -exec rm {} \; - “Lazy evaluation” Datei Älter als 7 Tage Auf lokalen Dateisystemen Name „core“ Ab der Wurzel Infos ausgeben Dann löschen find core_files/ -type f -name core -a -ls -mtime +7 -exec rm {} \; Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Die Unix Prozesshierarchie Definition, Lebenszyklus, Kommandos, Beispiele

Unix Prozesse – Definition Ein Unix Prozess ist ein Programm während der Ausführung. Attribute eines Prozesses -Systemweit eindeutige numerische ID (PID) Effektiver Eigentümer (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 Programmzähler * * 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 für Benutzeranmeldungen erforderlich sind Dient als Eltern-Prozess für verwaiste Prozesse Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Unix-Prozesse - Lebenszyklus Parent Child wait() vor exit() Blockiert oder läuft weiter Läuft weiter exit() vor wait() (erhält SIGCHLD) Wird zum Zombie bis zum wait() Unbe- handeltes Signal an Parent Verschwindet Wird auch gekillt Parent beendet sich Bekommt init als Parent- Prozess (der auf alle Prozesse wartet) 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 auszuführen, muss dieses mittels exec(3) in den neuen Kindprozess geladen werden. Kommandos ps Prozessliste ausgeben pstree Prozessliste als Baum ausgeben top Prozesse in Echtzeit, sortiert nach Ressourcenberbrauch kill Signal an Prozess senden (Prozess beenden) 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 hängen: perl -e 'if ((my $pid = fork() ) == 0) { while(1){} } else { print $pid.“\n“ ; exit }' Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Arbeiten mit Unix-Shells Einführung, interaktives Arbeiten, Manualseiten, Variable, Expansion, Job-Kontrolle

Unix-Shells Ursprünglich als Schnittstelle zwischen Benutzer und Kern („Schale“) Sowohl interaktiv bedienbar als auch als Skriptsprache verwendbar 2 große Familien von Shells: Bourne-Shell kompatibel Sh / POSIX-Shell Bash (wird in dieser Lehrveranstaltung verwendet) Korn-Shell Z-Shell C-Shell kompatibel Csh Tcsh Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Bash – interaktives Arbeiten Kommandozeilen-Editor Pfeiltasten auf/ab für Historie Pfeiltasten rechts/links, Pos1, End für Bewegung innerhalb der Zeile <tab> vervollständigt 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 `…` 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` Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Bash – I/O Umleitung Jeder Prozess hat normalerweise 3 geöffnete Dateien Standardeingabe stdin (Filehandle 0) Standardausgabe stdout (Filehandle 1) Standardfehlerausgabe sterr (Filehandle 2) Diese sind für gewöhnlich mit dem Terminal des Benutzers verbunden (also Eingabe durch die Tastatur, Ausgabe auf den Bildschirm), können jedoch auf der Kommandozeile umgeleitet werden: „stdin“ kann mit „< Datei“ mit einer Datei verknüpft werden „stdout“ kann mit „> Datei“ mit einer Datei verknüpft werden „stderr“ kann mit „2> Datei“ mit einer Datei verknüpft werden Beispiele grep root < /etc/passwd > /tmp/out.txt 2> /tmp/err.txt ls –l > /tmp/out_and_err.txt 2>&1 Head, tail -f 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 [<num>] Job im Hintergrund weiterlaufen lassen: bg [<num>] Beispiele grep im Hintergrund starten vi unterbrechen xeyes in den Hintergrund Nohup! Ps Kommando Beispiel: vi in den Hintergrund Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Bash – komplexe Kommandos Sequentielle Ausführung: $ 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 für das nächste): $ ls –l / | grep bin Kommandos find, xargs head, tail –f, tee Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Bash - Kontrollstrukturen Bedingte Ausführung if <cmd> ; then … ; else … ; fi case <word> in <pattern>) … ;; <pattern2>) … ;; *) … ;; esac Schleifen for var in <list> ; do … ; done while <cmd> ; do … ; done Kommandos: seq Pipe in while-read-Schleifen! Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Bash – Beispiel Wir wollen in einem Verzeichnis alle .c-Dateien in „.c~“ umkopieren, um diese ggfs. später wieder herstellen zu können. find . –name „*.c“ | while read name ; do mv $name $name~ ; done Oder (nicht rekursiv) for name in *.c ; do mv $name $name~ ; done Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Aufgabe Finden Sie heraus, wie man in der bash(1) den Prompt verändert 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 könnte der User sich also in /usr oder in /server/usr befinden). Tipp: für den Pfad-Anteil könnte das Konstrukt ${parameter##word} hilfreich sein. Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Scripte editieren und ausführbar machen Shell Scripting Scripte editieren und ausführbar machen

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) ... Ausführbar sind (chmod +x script.sh) Wenn das Script nicht im Suchpfad liegt: ausführen mit Pfadangabe! Texte editieren: natürlich mit vi(m)! (Der sagt übrigens auch nie ‚bitte‘.) Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Vi Crashkurs <enter> I, i, o, O, a, A ... „Colon“-Mode Command-Mode Insert-Mode ESC „:“ 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 Einfüge-Kommandos in den Einfüge-Modus. Mit der ESC-Taste verlässt man den Einfüge-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 nach „vim refcard“) Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Zeitgesteuerte Ausführung cron und at

Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung

Textverarbeitung mit grep, sed, awk Unix Tools Textverarbeitung mit grep, sed, awk