Erstellen eines kleinen Log Scriptes – Linux Tutorium Part4
Ein kleines Script in Linux erstellen
nachdem die Grundsätzliche Vorgehensweise jetzt klar ist, will ich euch mal wieder nen Schritt weiter bringen. Hier wollen wir ein weiterhin sehr einfaches Script schreiben welches in eine Datei schreibt.
Oftmals wird in der Programmierwelt eine Sicherungskopie gemacht, jene braucht natürlich Zeitpunkt und Benutzer. Aber auch bei anderen Fällen will man gerne mal nachvollziehen wer was gemacht hat und vor allem wann.
Dazu werden Log Files benutzt.
Weiterhin will ich hier kurz noch sagen, alle Scripte könnt ihr natürlich mit “cat >name.sh” im Terminal schreiben, einfacher wird es aber jetzt eine Datei anzulegen und dann im Texteditor den Code einzufügen. Der Grund liegt auf der Hand, man kann Änderungen viel einfacher durchführen.
Aber zurück zum Log Script. Was brauchen wir also? Ein Script und eine Datei in welche die Ergebnisse angelegt werden. Da der Befehl “cat >>name.txt” ja entweder Anhängt oder, falls die Datei nicht existiert diese auch erstellt, brauchen wir uns um die zweite Datei nicht kümmern. Die andere erstellen wir auf einem der bekannten Wege. Achtet auf die Endung .sh. Danach fügen wir folgende Zeilen ein:
#!/bin/sh cat >>log.txt <>log.txt who >>log.txt
Denk dran bevor ihr das Script ausführt müsst ihr natürlich wieder Rechte vergeben “chmod +x script.txt”.
Neu an dem ganzen ist jetzt der “<
Dann kommt auch schon das FF und sagt der Shell hey hier ist Ende des einlesen.
"date >>log.txt” schreibt das Datum und die Uhrzeit in die log.txt. Genauso macht es who mit dem User.
Jedes mal wenn das Script jetzt ausgeführt (für die Quereinsteiger es geht mit ./script.sh) wird passiert das gleiche. Wenn man mit “cat log.txt” öffnet kann man das Ergebnis sehen.
Weiterführendes:
Aber es geht auch mit einer Zeile Weniger. Wenn man sog. Pipelines verwendet und die Zuweisung in Klammern setzt kann der Befehl für das Schreiben von Date und User auch so aussehen:
(date; who) >>log.txt
Im Bild habe ich “who am i” verwendet was nur mich selbst zurück gibt.
Die Klammern sagen der Shell das er wie in der Mathematik auch, das drinnen zuerst behandeln soll und dann weiter mit dem äußeren Teil vorgehen soll.
Das Zeichen “|” bewirkt das beide zurückgegeben werden. Im Hingergrund passiert hier ganzschön viel. Kurz erklärt erstellt er eine Variable schreibt da rein und gibt am ende den gesamten wert zurück, es wären also mehr Befehle möglich.

