bash
oder perl
Dies ist eine alte Version des Dokuments!
Um immer wiederkehrende Aufgaben zu automatisieren, können sogenannte Skripte verwendet werden. Diese Skripte sind Textdateien, die z.B. Befehlsabfolgen enthalten, die normalerweise sequenziell auf der Kommandozeile eingegeben würden. Beim Ausführen werden diese Texte von einem Interpreter 1) analysiert und die enthaltenen Befehle werden ausgeführt. Die einfachste Variante sind die bash
-Skripte, da hier die Befehle wie auf der Kommandozeile eingegeben werden. Die Kommandozeile ist nämlich nichts anderes als das Programm /bin/bash
.
Zusammenfassung der notwendigen Schritte:
test.sh
)#!/bin/bash
)chmod +x DATEINAME
) Eine Textdatei kann mit einem Texteditor der Wahl erstellt werden. Hier einige Beispiele für Texteditoren:
Am Einfachsten erstellt man eine neue Datei, in dem den Editor öffnet und anschließend die Datei unter dem gewünschten Namen speichert.
Alternativ kann man auch mit dem Befehl touch DATEINAME
eine leere Datei generieren („berühren“) und anschließend mit dem Editor öffnen.
Am Anfang eines Skriptes muss man Linux mitteilen, mit welchem Interpreter der folgende Text analysiert werden soll. Dies geschieht durch den speziellen Kommentar #!/bin/bash
2). Dabei wird nach dem Ausrufezeichen der Pfad zum Interpreter angegeben. Hier: /bin/bash
.
#!/bin/bash echo "Das ist ein Test und gibt nur diesen Text aus." echo "Jetzt wird der Ordnerinhalt angezeigt:" ls -l
Damit das Skript von Linux überhaupt ausgeführt werden kann, muss es zunächst als ausführbar gekennzeichnet werden (s.o.).
chmod +x test.sh
Dabei bedeutet chmod
so viel wie change modus
und +x
setzt das eXecute
Bit. Danach wird die Datei als ausführbar gelistet, was unter Ubuntu standardmäßig mit einer grünen Schrift angezeigt wird.
Ausführen lässt sich das Skript nun, indem man den vollständigen Pfad angibt. Wenn man sich im Ordner befindet, in dem das Skript gespeichert wurde, wäre dies:
./test.sh
Mit ./
ist der aktuelle Pfad gemeint 3).
Alternativ kann man ein Skript auch in einen Ordner des Default-Suchpfades 4) also z.B. /home/USER/.bin/HIERHIN
Die zweite Variante hängt aber vom jeweiligen System ab.
Skripte werden häufig im Bereich Administration von Servern und Netzelementen eingesetzt um Wiederkehrende Aufgaben zu erledigen. Hierzu zählen:
Die Liste lässt sich beliebig fortsetzen. Entscheidend für ein gutes Skript ist die gute Lesbarkeit. D.h. man sollte die einzelnen Abschnitt gut kommentieren, damit man später noch versteht, was das Skript eigentlich tut. Mit etwas Übung kann man Skripte auch so schreiben, dass sie wiederverwertbar sind.
Wie erreicht man nun ein gutes Ergebnis? Hierzu sollte man sich überlegen, welche Befehle benötigt werden. Diese kann man zunächst händisch auf der Kommandozeile ausprobieren und sie anschließend in seine Textdatei aufnehmen. Hat man alle benötigten Befehlszeilen zusammen, dann geht es an das Sortieren. Häufig ist die Reihenfolge wichtig (z.B. bei Firewall-Regeln oder beim Aktivieren einer Route). Hierbei ist es zweckmäßig zunächst einen definierten Zustand herzustellen.
Beispiel: Routen in die Routing-Tabelle bringen
Arbeitet man an einem Testsystem könnte man z.B. zunächst die eingesetzten Interfaces löschen5). Dadurch werden auch alle Routen, die bereits anderweitig auf diesen Interfaces konfiguriert wurden gelöscht. Diese könnten ansonsten eventuell stören. Danach beginnt man mit der Konfiguration der IP-Adressen, denn man kann erst Routen nur konfigurieren, wenn dem System die Netze bekannt sind. Anschließend fügt man die zusätzlichen Routen hinzu.
#!/bin/bash # alle IP-Adressen und Routen an eth1 löschen sudo ip addr flush eth1 # IP-Adresse 10.0.0.20 auf Interface eth1 setzen sudo ip addr add dev eth1 10.0.0.20/8 # Default-Route setzen (Standard-Gateway 10.0.0.1) sudo ip route add default via 10.0.0.1
bash
oder perl
pwd
PATH
-Umgebungsvariable
Ergänzungen