<- Zurück

Shell-Scripting für alltägliche Aufgaben


Shell-Scripting ermöglicht IT-Spezialisten und Softwareentwicklern die Automatisierung von Aufgaben über die Kommandozeile, wie z. B. das Kompilieren von Code oder das Batch-Processing von Computern. In meiner beruflichen Laufbahn nutze ich Shell-Scripting häufig für die Aktivierung von Python Virtual Environments. Doch der Reiz des Shell-Scriptings geht über die Server-Administration hinaus: viele alltägliche Aufgaben können mithilfe von Shell-Scripting automatisiert werden, um das Leben zu vereinfachen.

Ein Beispiel ist die routinemäßige Erstellung von Daten-Backups. Für einen Data Scientist oder Software-Entwickler ist es unerlässlich, regelmäßige Datensicherungen durchzuführen, um das Risiko eines Verlusts umfangreicher, wiederverwendbarer Codezeilen zu minimieren und große Mengen privater Daten wie Bilder, E-Books, Dokumente, Filme und mehr zu schützen.

Obwohl Standard-Backup-Software Tools wie Déjà Dup auf Ubuntu oder Time Machine auf dem Mac verfügbar sind, erweisen sich diese oft als unflexibel und eingeschränkt, wenn es darum geht, präzise festzulegen, welche Daten gespeichert, manipuliert oder durch Parameter angepasst werden sollen. Shell-Scripting bietet hier eine Lösung, indem es ermöglicht, automatisierte Backup-Skripte zu erstellen, die wiederverwendbar sind und leicht an unterschiedliche Backup-Szenarien angepasst werden können. In diesem Beitrag stelle ich ein einfaches Backup Shell-Skript für Ubuntu vor, das mit UNIX-basierten Systemen kompatibel ist.

Einfaches Shell Skript

Zunächst verbinde ich meine externe Festplatte Elements mit meinem Ubuntu-Laptop und erstelle eine neue Textdatei, die ich als Backup_012022.sh speichere. Danach klicke ich mit der rechten Maustaste auf die Datei, öffne Eigenschaften, navigiere zum Reiter Berechtigungen und aktiviere die Option Datei als Programm ausführen erlauben.

In einem nächsten Schritt öffnet man die Datei in einem Texteditor und fügt das Shell-Skript ein. In diesem Skript erstellen wir zuerst ein neues Verzeichnis auf meiner externen Festplatte mit dem Namen Backup_012022 im Ordner Backup. Anschließend navigieren wir zum Ordner, der meine privaten Daten enthält. Um Speicherplatz zu sparen, komprimiere ich den Ordner durch Zipping und speichere die komprimierte Datei auf meiner externen Festplatte.

mkdir /media/christopher/Elements/Backup/Backup_012022
cd /home/christopher/
zip -r Python_Environment_Backup.zip ./environments
mv Python_Environment_Backup.zip /media/christopher/Elements/Backup/Backup_012022
zip -r Documents_Backup.zip ./Documents
mv Documents_Backup.zip /media/christopher/Elements/Backup/Backup_012022
zip -r Pictures_Backup.zip ./Pictures
mv Pictures_Backup.zip /media/christopher/Elements/Backup/Backup_012022
zip -r Developing_Backup.zip ./Developing
mv Developing_Backup.zip /media/christopher/Elements/Backup/Backup_012022

Im nächsten Schritt wird ein weiterer Ordner gezippt, wobei der Ordner namens x86_64-pc-linux-gnu-library, der sich darin befindet, ausgeschlossen wird:

zip -r R_Backup.zip ./R -x "*x86_64-pc-linux-gnu-library*"
mv R_Backup.zip /media/christopher/Elements/Backup/Backup_012022

Diese Commands werden für alle weiteren Ordner wiederholt, bevor wir definieren, dass schließlich das Shell-Skript vom Computer auf die externe Festplatte kopiert werden soll:

cp /home/christopher/Backup_012022.sh /media/christopher/Elements/Backup/Backup_012022

Zum Schluss speichern wir die Datei, öffnen das Terminal und geben sh Backup_012022.sh ein, um das Programm auszuführen und den Backup-Prozess zu starten. Werden die Ordnerstruktur oder die Namen der Verzeichnisse nicht geändert, können wir das Skript für zukünftige Backups immer wieder nutzen.

Dies ist möglicherweise die einfachste Version eines Shell-Skripts für die Erstellung Daten-Backups, aber es bietet einen guten Ausgangspunkt, um komplexere Skripte und Anwendungen zu erstellen. Zum Beispiel könnten wir die Komprimierungsparameter der Zip-Dateien ändern oder die Methode von Zip auf Tar umstellen und Gzip verwenden, um unsere Daten zu speichern. Wir könnten ältere Backup-Ordner automatisch löschen oder logische Operatoren nutzen, um komplexere Verzeichnisstrukturen zu erstellen. Ebenso wäre es möglich, unsere Daten zu verschlüsseln, etwa mit Hilfe von encfs.

Shell-Skripte ermöglichen nicht nur die Automatisierung einfacher oder komplexerer Prozesse und sparen Zeit, sondern bieten auch den Vorteil, dass die Programme individuell gestaltet und an die eigenen Bedürfnisse und Vorlieben angepasst werden können.

Apps

Connect

Mehr