1833591

Bequemer arbeiten: Linux automatisieren

08.06.2014 | 09:23 Uhr |

Wenn Sie sich am Ende eines Arbeitstages fragen, wo Ihre Zeit geblieben ist, erledigen Sie vielleicht zu oft die gleichen Handgriffe. Linux bietet Werkzeuge, mit denen Sie viele Arbeiten automatisieren und beschleunigen können.

Linux ist auf jeden Fall das perfekte System für alle Nutzer, die auf der Suche nach Funktionen und Möglichkeiten sind, möglichst viele Dinge zu automatisieren und sich damit Zeit zu sparen. Mit Cron gehört zu jedem System ein Dienst, der zeitgesteuert Programme und Scripts aufrufen kann. Somit lassen sich viele Aufgaben vollautomatisiert erledigen. Für mehr oder weniger regelmäßig anfallende Aufgaben, die aber nicht fest terminierbar sind, genügt das Anlegen eines Scripts, das bei Bedarf manuell gestartet wird.

Unter Ubuntu nicht ausreichend: Um Scripts lauffähig zu schalten, anstatt nur in den Editor zu laden, benötigen Sie zusätzlich eine Vorgabe mit gsettings.
Vergrößern Unter Ubuntu nicht ausreichend: Um Scripts lauffähig zu schalten, anstatt nur in den Editor zu laden, benötigen Sie zusätzlich eine Vorgabe mit gsettings.
© PC-Welt

Unity-Falle: Scripts ausführbar machen

Ist ein Script geschrieben, soll es möglichst mit einem Mausklick zur Verfügung stehen. Dazu klicken Sie die Datei am einfachsten im Dateimanager Ihrer Wahl mit der rechten Maustaste an. In den „Eigenschaften“ finden Sie die Option, um die Datei ausführbar zu machen. Sie können dazu natürlich auch das Terminal nutzen.

Mit einem chmod a+x [Dateiname] signalisieren Sie dem System, dass es sich nicht um eine Textdatei handelt, sondern die Datei als Programm betrachtet werden muss.

Leider haben die Entwickler von Ubuntu das bisherige Verhalten des Systems geändert. Auch wenn die Datei als ausführbar gekennzeichnet wurde, öffnet sich immer der Editor des Systems, wenn Sie versuchen, die Datei mit der Maus zu starten. Mit einem Terminal-Kommando können Sie aber wieder das ursprüngliche Verhalten einrichten:
sudo gsettings set org.gnome. nautilus.preferences executable-text- activation ask
Statt der Option „ask“ sind auch „launch“ oder display“ möglich. Mit „launch“ wird die Datei immer unmittelbar ausgeführt, während „display“ dem (unglücklich gewähltem) Standard entspricht.

Syntax-Highlighting aktivieren: Beachten Sie, dass Editoren wie hier gedit zwar diverse Script-Sprachen unterstützen, das jeweilige Highlighting aber erst aktiviert werden muss.
Vergrößern Syntax-Highlighting aktivieren: Beachten Sie, dass Editoren wie hier gedit zwar diverse Script-Sprachen unterstützen, das jeweilige Highlighting aber erst aktiviert werden muss.

Script-Editor mit Syntax-Highlighting

Das einzige Werkzeug, das Sie für die Automatisierung benötigen, ist ein guter Script-Editor. „Gut“ bedeutet, dass er Ihnen möglichst lesefreundlich die Script-Zeilen interpretieren soll, also sogenanntes Syntax-Highlighting unterstützt. Dabei werden Schlüsselwörter der Script-Sprache und Klammerkonstruktionen farblich abgehoben und die Zusammenhänge sofort sichtbar. Nützlich ist ferner eine sichtbare Zeilenzählung für die Fehlerkorrektur. Editoren wie der Ubuntu-Standard gedit beherrschen dies alles, jedoch müssen Sie ihm via „Ansicht Hervorhebungsmodus Skripte“ erst mal mitteilen, dass es sich um ein Shell-Script handelt („sh“).

Desktop freiräumen – schnell mit Bordmitteln

Gehören Sie auch zu den Menschen, die den Desktop gern als Zwischenspeicher für alle möglichen Dateien verwenden? Auf einem Außentermin mit dem Notebook sieht das nicht nur unglücklich aus, die Namen von Dateien gehen ja auch niemanden etwas an. Eines der einfachsten Scripts, um den Desktop schnell aufzuräumen, beschränkt sich auf einen Zweizeiler und bedient sich des Kommandos „mv“, mit dem Sie auf der Kommandozeile Dateien verschieben können. In einem Editor Ihrer Wahl schreiben Sie einfach:
#!/bin/bash
cd /home/<Benutzername>/ Arbeitsfläche
mv *.* /home/<Benutzername>/ <Verzeichnisname>
Die Datei speichern Sie etwa unter dem Namen „cleanup.sh“ und weisen ihr den Status „ausführbar“ zu. Jetzt können Sie jederzeit mit einem Mausklick schnell den Desktop freiräumen oder das auch zeitgesteuert erledigen lassen.

Bei Kommandos, die eine Datei dauerhaft verschieben oder löschen, ist es ratsam, statt des eigentlichen Kommandos während der Entwicklung des Scripts den Befehl „echo“ zu verwenden. Damit gibt das Script zunächst nur aus, welche Dateien es als Nächstes bearbeiten würde. Denn auf der Kommandozeile gibt es ja keine Option, die Schritte wieder rückgängig zu machen. Das kurze Script lässt sich natürlich immer weiter verfeinern.
#!/bin/bash
inputdir="/home/<Benutzer>/ Arbeitsfläche"
for datei in "$inputdir"/*.png; do
mv "$datei" /home/<Benutzer>/ ordnung
done
for datei in "$inputdir"/*.jpg; do
...
done
In diesem Beispiel legen Sie zunächst das Verzeichnis fest, um das es geht. Danach kommt eine Schleife zum Einsatz, die alle Dateien mit der Endung „PNG“ in ein bestimmtes Verzeichnis verschiebt. Diesen Block können Sie beliebig kopieren und auf andere Endungen anwenden.

Der automatische Dateiaufräumer kennt viele Dateitypen. Sie sollten aber mit Bedacht wählen, auf welche Verzeichnisse sie ihn loslassen.
Vergrößern Der automatische Dateiaufräumer kennt viele Dateitypen. Sie sollten aber mit Bedacht wählen, auf welche Verzeichnisse sie ihn loslassen.

Vorsichtig einsetzen: Der Aufräumdienst

Auf der Seite von Gnome-Look.org finden Sie den „Directory cleaner and files organizer“. Das Programm ist seit einiger Zeit nicht mehr weiterentwickelt worden, funktioniert aber nach wie vor. Dennoch sollten Sie es mit Vorsicht anwenden und nicht einfach starten. Laden und entpacken Sie das Archiv auf Ihrem System. Sie finden darin ein Script für die Installation. Ist diese abgeschlossen, lässt sich der Organisator wie gewohnt über die grafische Oberfläche aufrufen. Im ersten Schritt sollten Sie unbedingt die Option „Edit Settings“ wählen. Dort passen Sie die Pfadangaben an die Gegebenheiten Ihres Systems an. Nicht nur, wenn Sie zu den eher vorsichtigen Naturen gehören, betreiben Sie das Script am besten im Modus „Advanced-Cleaning“. Da es auch hier keine Möglichkeit der Rücknahme der Kommandos gibt, wählen Sie das Ausgangsverzeichnis mit Bedacht. Als Belohnung erhalten Sie ein Script, das immerhin zwischen einigen Hundert Dateitypen unterscheiden kann und Ihnen damit viel Arbeit beim Schreiben eines eigenen Scripts spart.

Mit dem grafischen Hilfsprogramm gnome-schedule wird die Einrichtung von Cron-Jobs etwas leichter, und Sie ersparen sich den Umgang mit einem Editor.
Vergrößern Mit dem grafischen Hilfsprogramm gnome-schedule wird die Einrichtung von Cron-Jobs etwas leichter, und Sie ersparen sich den Umgang mit einem Editor.

Zeitgesteuert oder manuell: Backups mit Tar

Ein Backup Ihres Linux-Systems können Sie mit einer Reihe von Werkzeugen erreichen. Nutzer von Ubuntu vertrauen vielleicht auf das eingebaute Werkzeug (deja-dup oder „Sicherung“ unter den Systemeinstellungen), fortgeschrittene Anwender basteln sich eventuell eine eigene Lösung, die auf dem Programm rsync basiert. Eine sehr einfache Option, die Dateien eines aktuellen Projekts zu sichern, besteht aus einem Script, dem Archivierungsprogramm Tar und einem Cron-Job. In dem Script wechseln Sie zunächst in das Verzeichnis Ihrer Projektdateien und rufen danach Tar auf. Der Packer stellt alle Dateien einer bestimmten Endung zusammen. Damit Sie später gezielt auf bestimmte Versionen zurückgreifen können, wird das Archiv mit einem Datumsstempel versehen. Das Ganze sieht dann etwa so aus:
#! /bin/bash
cd ~/<Ordner>/
tar czfv backup.tgz *.doc
cp backup.tgz ~/Dropbox/ backups/$(date "+%y%m%d-%H:%M"). backup.tgz
Dieses Script lässt sich ebenfalls noch weiter verfeinern. Nehmen Sie ein anderes Ziel als die Dropbox, oder fügen Sie alle Dateien in das Archiv ein, nicht nur die eines Dateityps. Die Tilde im Script ist übrigens die Abkürzung für den Benutzerordner. Übernehmen Sie das Script in Cron und lassen Sie es etwa alle 30 Minuten ausführen, erhalten Sie im Laufe des Tages einen schönen Verlauf aller im Ordner geänderten Dateien. Falls das manuelle Editieren der Cron-Tabelle nicht Ihre Sache ist: In den Paketquellen Ihrer Distribution finden Sie sicherlich das Paket namens gnome-schedule, das Sie etwa unter Ubuntu mit
sudo apt-get install gnome- schedule
schnell nachinstalliert haben. Dieses grafische Hilfsprogramm ist sehr übersichtlich und macht das Eintragen von Scripts und Programmen in die Cron- Zeitsteuerung mehr als einfach.

Wenige Zeilen, die viel erledigen: Mit einer Schleife arbeiten Sie je nach Datenbestand Hunderte von Dateien vollautomatisch ab – in diesem Fall zu konvertierende Bilddateien.
Vergrößern Wenige Zeilen, die viel erledigen: Mit einer Schleife arbeiten Sie je nach Datenbestand Hunderte von Dateien vollautomatisch ab – in diesem Fall zu konvertierende Bilddateien.

Jede Menge Bilder per Script konvertieren

Wer die Aufgabe hat, Hunderte von Fotos von einem Format in ein anderes zu übertragen, kann dies natürlich mit Gimp oder anderen Bildbearbeitungen versuchen. In aller Regel lässt sich der Prozess aber mit einem installierten Imagemagick und wenigen Zeilen Script elegant automatisieren:
#!/bin/bash
inputdir="/home/sla/Bilder/ bearbeiten"
outputdir="/home/sla/Bilder/ bearbeitet"
ext="jpg"
for pic in "$inputdir"/*.png ; do
bildname=$(basename "$pic" png)
convert "$pic"
"$outputdir/$bildname$ext";
done
In diesem Beispiel-Script liegen die Dateien, die Sie konvertieren wollen, im Verzeichnis „inputdir“, die konvertierten Dateien möchten Sie im Verzeichnis „outputdir“ ablegen. Die Variable „ext“ nimmt das gewünschte Zielformat entgegen. Dieses wird benötigt, weil die Erweiterung der Software Imagemagick anzeigt, wie die Umwandlung erfolgen soll. Die Konvertierung erfolgt wieder in Form einer Do-Schleife. Berücksichtigt werden dabei die Dateien mit der Endung „PNG“. Das Kommando „basename“ gibt zu einer Datei ihren Namen, aber ohne Pfad zurück.

Oft übersehen wird die Möglichkeit, dem basename zusätzlich eine Endung übergeben zu können. Besitzt die Datei nämlich diese Endung, wird lediglich der Dateiname vor der Extension zurückgegeben. Das ist in diesem Zusammenhang wichtig, damit bei der Konvertierung nicht etwa doppelte Endungen wie „JPG.PNG“ entstehen.

Die weiteren Schalter von Imagemagick eröffnen Ihnen noch viel weitergehende Manipulationsmöglichkeiten, so etwa auch das automatisierte Skalieren von Grafiken oder eine Veränderung der Farbtiefe.

In Cuttlefish wählen Sie zunächst ein Ereignis aus, das beobachtet werden soll.
Vergrößern In Cuttlefish wählen Sie zunächst ein Ereignis aus, das beobachtet werden soll.

Cuttlefish (1): Persönlichen Assistenten installieren

Das Schreiben einfacher Scripts ist nicht sonderlich schwer, allerdings steigt die Komplexität an, wenn Sie Systemzustände ermitteln wollen oder müssen. Cuttlefish ist der Name einer Anwendung, die problemlos unter Ubuntu und anderen Distributionen läuft. Voraussetzung dafür ist eine installierte Umgebung von Python. Das Programm lässt sich auf zwei verschiedene Arten installieren:

A. Sie besuchen die Projektseite unter https://launchpad.net/cuttlefish , laden sich dort die aktuelle Version auf Ihren Rechner und entpacken das Archiv. Wechseln Sie in den Ordner, in dem Sie die Datei entpackt haben. Mit pythonsetup.py starten Sie die Installation. Möglicherweise macht Sie die Installationsroutine noch auf eine fehlende Abhängigkeit aufmerksam. Dann installieren Sie das benötigte Paket nach.

B. Eine Alternative zur Einrichtung führt über die Konsole:
sudo add-apt-repository
ppa:noneed4anick/cuttlefish
sudo apt-get update
sudo apt-get install cuttlefish
Anschließend starten Sie die Software wie gewohnt über die grafische Oberfläche Ihres Systems.

Cuttlefish (2): Arbeitsumgebung zusammenstellen

Cuttlefish basiert aus dem Zusammenspiel von so genannten „Reflexen“ und der Reaktion der Software darauf. Ein sehr einfacher Reflex und seine Reaktionen bestehen im Starten von Programmen. Auf diese Weise stellen Sie sich ganz automatisch eine individuelle Arbeitsumgebung zusammen. Mit einem Rechtsklick auf das Icon der Menüleiste rufen Sie mit „Open Configuration“ die Einstellungen auf. Klicken Sie auf „New“, um die erste Aktion zusammenzustellen. Im Register „Basics“ tragen Sie den Namen für den Ablauf ein.

Aktivieren Sie den Regler unter „Activated by stimulus“. Danach wird der darunter angebrachte Schalter klickbar. Im nachfolgenden Dialog wechseln Sie in den Abschnitt „Applications“ und markieren rechts „Application starts“. Beenden Sie die Auswahl mit „OK“. Sie kehren damit zum Ausgangsdialog zurück.

Aus dem Listenfeld wählen Sie jetzt das Programm aus, das gestartet sein muss, damit die weiteren Aktionen ablaufen. Wechseln Sie in das Register „Reaction“. Auf einen definierten Auslöser lassen sich nun beliebig viele Reaktionen definieren. Dazu klicken Sie jeweils auf das Pluszeichen. Blättern Sie in den Kategorien zu „Applications“. Sie finden dort zwei Aktionen, um Programme zu starten.

Für alle Apps, die Sie auch über einen Eintrag in der grafischen Oberfläche per Mausklick aufrufen können, ist der einfache Start ausreichend. Der „Advanced-Modus“ ist dagegen für ausführbare Dateien, die Sie unter Umständen im Terminal aufrufen wollen oder denen weitere Parameter zum Start übergeben werden müssen. Für jedes weitere Programm wiederholen Sie diesen Schritt. Praktischerweise lässt sich diese Konstellation auch wieder umdrehen. So genügt es, eine Software zu beenden, um andere Werkzeuge automatisch zu beenden.

Cuttlefish (3): Reaktion auf das eigene WLAN

Wahrlich interessant sind die Möglichkeiten von Cuttlefish, auf Systemereignisse zu reagieren. Dazu gehört etwa das Einloggen in ein bestimmtes WLAN. Während es unterwegs ratsam sein kann, aus Gründen der Sicherheit und des Stromverbrauchs das Bluetooth-Modul des Notebooks abzuschalten, signalisiert die Einwahl in das eigene WLAN, dass Sie sich in den eigenen vier Wänden befinden und drahtlos auf Geräte zuzugreifen oder der Standard-Drucker des Systems geändert werden soll.

Solche Aktionen sind mit den vordefinierten Aktionen in Cuttlefish problemlos möglich. Dazu legen Sie als „Stimulus“ die Option „Connect to WLAN“ fest und wählen aus der Liste der eingerichteten Verbindungen Ihr eigenes Netz aus. Die Verbindung muss also dem System bekannt sein.

Ratsam ist es auch, die Option „Also check on startup“ zu aktivieren, denn dann prüft die Software auch gleich nach dem eigenen Aufruf, ob die Bedingung zutrifft. Unter „Reactions“ schalten Sie nun Bluetooth an und aus oder ändern weitere Einstellungen, die bei der Anmeldung im eigenen WLAN erfolgen sollen.

0 Kommentare zu diesem Artikel
1833591