Linux – Warum funktionieren Shell-Scripts?

Warum benötige ich Scripts? Was macht ein Shell-Script aus?
Ganz einfach, man formuliert seine Folge von Kommandos zu einer Aufgabe in einer Datei, definiert, das diese ausgeführt werden darf und aktiviert sie manuell oder zeitgesteuert bei Bedarf. Merke: Kommandofolgen einmal schreiben und immer wieder benutzen.
Beispiel gefällig:


#!/bin/bash
#---------------------------------------------------------------------------------
# Sichern des persoenlichen Dokumenten-Orders
# Kommentare mit dem Gatter
#---------------------------------------------------------------------------------
cd ~                      # in das Home-Directory wechseln
#---------------------------------------------------------------------------------
# Sicherungs-   create    Name der                        Name des zu
# programm      zipped    Sicherungs                      sichernden
#               File      Datei                           Pfades
#---------------------------------------------------------------------------------
tar             czf       /media/Backup/dokumente.tgz     Dokumente
#--------------------------------------------------------------------------------- mv /media/Backup/dokumente2.tgz /media/Backup/dokumente3.tgz
mv /media/Backup/dokumente1.tgz /media/Backup/dokumente2.tgz
mv /media/Backup/dokumente.tgz /media/Backup/dokumente1.tgz
# ----------------------------------------------------------------------------------

Ich gehe davon aus, dass ein USB-Stick in dem Pfad /media/Backup eingehängt ist. Wie man das realisiert, das werde ich separat erläutern.
Zunächst erläutere ich mein Shell-Script.
In Zeile 1 wird der Kommandointerpreter definiert. Alle folgenden Zeilen werden durch das Programm /usr/bin/bash ausgeführt.
Nicht ausgeführt wird alles hinter einem Gatter (#). So werden Kommentare beschrieben.
Das cd heisst „Change Directory“ und läßt dich in dein Home-Verzeichnis wechseln. Unter dem Home-Verzeichnis gibt es das Verzeichnis Dokumente. In diesem Verzeichnis werden Dokumente wie Briefe oder Kalkulationstabellen, die du mit Libre Office erstellen kannst, gespeichert.
Jetzt kommt das Programm tar, es heißt „tape archiver“, kann aber schon lange nicht nur auf Tape schreiben sondern unter anderem auch in Dateien. Die Parameter von tar sind czf ( „create zipped file – erzeuge komprimierte Datei“). Danach kommt der Name der Sicherungsdatei. Der Dateiname besteht aus dem Pfadnamen, hier /media/Backup, und den eigentlichen Namen der Datei, hier dokumente.tgz. Du erinnerst dich, im Pfad /media/Backup steckt unser USB-Stick. Die Daten landen auf dem Stick. Der Dateiname dokumente.tgz wurde gewählt, weil der Ordner Dokumente gesichert wird. Die Endung tgz ist die Abkürzung für „tar gezipped“. Danach muss man noch angeben, was man sichern möchte, hier den Ordner Dokumente.
Da man nicht nur die aktuelle, sondern evtl. die letzten drei Sicherungen haben möchte, kann man mit dem Kommando mv („move“) die Dateien umbenennen.
Die drei mv-Kommandos nacheinander zu kodieren scheint nicht besonders geschickt, und wirklich, das kann man besser machen.

for i in `seq 1 3 | tac`
do
let j=${i}-1
if [ -f /media/Backup/dokumente${j}.tgz ]; then
mv /media/Backup/dokumente${j}.tgz /media/Backup/dokumente${i}.tgz
fi
done

Hier wird ein einer Schleife, bei der der Zaehler „i“ von 3 bis 1 heruntergezählt wird, und einer zweiten Variablen „j“, die um 1 niedriger ist als „i“ jeweils pro Durchlauf der Schleife ein move-Kommando konstruiert, wenn die zu movende Datei existiert. Damit wird verhindert, das bei den ersten Läufen des Scripts, wenn noch keine 2 Dateien existieren, häßliche Fehlermeldungen kommen.
Zum Schluss nochmal den Hinweis auf das Kommando man („manual“). Mit „man tar“ kann man sich z.B. anschauen, was man mit tar alles so machen kann. Evtl. muss man ja aus dem komprimierten Sicherungsfile ein Dokument wieder auspacken, also „be prepared“, schau nach wie du Dateien wiederherstellen kannst.

Did you like this? Share it:
Dieser Beitrag wurde unter Allgemein, Kommandozeile, Linux veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.