Im Kurztest: Dateutils 0.4.4, Watchngo 1.2.1 , Ftpgrab 4.3.4, Gocryptfs 1.6, Serve 1.4
Dateutils 0.4.4
Datum und Uhrzeit manipulieren
Quelle: https://github.com/hroptatyr/dateutils
Lizenz: BSD
Alternativen: Date
Die Sammlung Dateutils enthält zehn Kommandozeilentools für das Manipulieren von Datum und Uhrzeit. Dateseq beispielsweise kümmert sich um Sequenzen. Anwender rufen das Tool zusammen mit einem Start- und einem Enddatum auf. Alternativ nimmt das Programm Dateseq Uhrzeiten entgegen. In eigene Skripte integriert, kann es auf diese Weise beliebig viele Verzeichnisse mit Datumsnamen erzeugen.
Dateadd eignet sich zum Berechnen von Kalenderdaten und Zeiten. Benutzer geben beim Aufruf ein Datum oder eine Uhrzeit an. Dahinter notieren sie die Rechenaufgabe, etwa »+1w« , »+5d« oder »+30m«. Wer wissen möchte, wie viel Zeit zwischen zwei Terminen liegt, greift stattdessen zu Datediff.
Tools zum Konvertieren verschiedener Datumsformate (»dateconv«), zum Aufrunden (»dateround«), Sortieren (»datesort«) und Vergleichen (»datetest«) sind ebenfalls in der Sammlung enthalten. Alle Werkzeuge kennen den Parameter »-f«, der die Ausgabe formatiert und lesbarer gestaltet. Das Archiv enthält für jedes Programm eine ausführliche Manpage. Beispiele finden Anwender außerdem im Github-Repository.
Dateutils ist eine leistungsfähige Toolsammlung, deren Werkzeuge allesamt auch in Skripten stets mit der Zeit gehen.
Watchngo 1.2.1
Dateien überwachen
Quelle: https://github.com/Leryan/watchngo
Lizenz: MIT
Alternativen: Watch, Fswatch
Watchngo beobachtet einzelne Dateien oder ganze Verzeichnisse auf Linux-Systemen. Gibt es irgendwo eine Veränderung, kann das Tool einen Befehl ausführen. Alternativ schreibt es Meldungen nach Standardout. Es setzt dazu auf die Go-Library Fsnotify
Das Go-Tool erwartet eine Datei namens »watchngo.ini« im Verzeichnis, aus dem heraus Anwender es aufrufen. Alternativ geben sie das File hinter »-conf« an. Die mitgelieferte »watchngo.sample.ini« kann als Vorlage für eigene Anpassungen dienen. Sie ist mit erklärenden Kommentaren versehen, sodass die fehlende Manpage kein Problem darstellt.
Jeder so genannte »watcher« steht in einem eigenen Abschnitt. Benutzer geben hier jeweils eine Datei oder ein Verzeichnis an und definieren das auszuführende Kommando. Optional schalten sie den Debugging-Modus ein und definieren Filter. Watchngo unterstützt reguläre Ausdrücke. Anwender, die keine Konfigurationsdatei schreiben möchten, geben ihre Wünsche beim Start hinter den Schaltern »-command«, »-match«, »-filter«, »-debug« und »-output« an. Das Tool ignoriert in diesem Fall eine vorhandene Konfigurationsdatei.
Watchngo erfüllt seine Versprechen und beobachtet Dateien sowie Verzeichnisse zuverlässig. Dank der beigelegten Beispielkonfiguration ist das Tool schnell einsatzbereit.
Ftpgrab 4.3.4
Downloadmanager für die Shell
Quelle: https://github.com/ftpgrab/ftpgrab
Lizenz: MIT
Alternativen: Wget, Curl
Dieses Shellskript bringt mehr Komfort in die Datenübertragung per FTP. Im Hintergrund setzt es dazu auf bewährte Werkzeuge wie »awk«, »wget« und »md5sum«. Im Archiv enthalten ist neben dem Skript »ftpgrab.sh« auch eine Beispielkonfiguration, die Anwender vor dem ersten Start nach »/opt/ftpgrab/ftpgrab.conf« kopieren und anpassen.
In der Einrichtungsdatei machen sie Angaben zum Zielverzeichnis und zum FTP-Server. In der Voreinstellung nutzt das Skript »wget«, es ist aber möglich, hinter »DL_METHOD« Curl einzutragen. Danach können Anwender außerdem über »FTP_SECURE=1« festlegen, dass das Skript eine sichere Verbindung mittels SSL/TLS verwendet.
Ftpgrab führt Buch darüber, welche Daten es bereits übertragen hat, und ermittelt für jedes File eine Md5-Prüfsumme. Diese verwaltet das Skript in einer Textdatei. Alternativ können Benutzer eine SQlite-Datenbank verwenden und ändern dazu die Variable »HASH_STORAGE« in der Konfigurationsdatei. Wer statt Md5 den SHA1-Algorithmus bevorzugt, passt »HASH_TYPE« entsprechend an.
Die zahlreichen Optionen sind auf der Projektseite ausführlich erklärt. Im Quelllarchiv selbst fehlen allerdings eine Dokumentation und eine Installationsanleitung.
Gocryptfs 1.6
Überlagertes Dateisystem mit Verschlüsselung
Quelle: https://github.com/rfjakob/gocryptfs
Lizenz: MIT
Alternativen: Encfs, Securefs
Das in Go implementierte Tool legt verschlüsselte überlagerte Dateisysteme an. Im Github-Repository gibt es kompilierte 64-Bit-Versionen, mit denen Nutzer sofort loslegen können. Einzige Voraussetzung ist das Kernelmodul Fuse. Vor dem ersten Start erzeugen Benutzer ein Verzeichnis, das sie anschließend hinter dem Befehl »gocryptfs -init« angeben. Danach tippen sie zweimal ein Kennwort.
Das neue Verzeichnis enthält die Dateien »gocryptfs.conf« und »gocryptfs.diriv«. Erstere beschreibt die Verschlüsselung – wird sie beschädigt oder gelöscht, ist kein Zugriff mehr möglich. Die Datei »gocryptfs.diriv« ordnet die verschlüsselten Namen ihren Klartextpendants zu.
Gocryptfs nutzt mehrere Algorithmen. Zum Erzeugen des Schlüssels greift das Tool auf »scrypt« zurück. Den Inhalt von Dateien verschlüsselt es mit AES-CGM, während es die Datei- und Verzeichnisnamen mit EME unkenntlich macht.
Um ein verschlüsseltes Verzeichnis zu mounten, rufen Anwender »gocryptfs« zusammen mit dem Ordnernamen und dem Mountpoint auf, »fusermount -u« hängt das Verzeichnis wieder aus. Wer es nur lesend mounten möchte, ruft »gocryptfs« mit dem Parameter »-ro« auf. Informationen über einen Safe liefert »-info«, und »-password« ändert das Kennwort. Nutzer, die das Passwort nicht selbst eintippen möchten, geben hinter »-passfile« eine Datei an.
Der Platzverlust durch die Verschlüsselung hält sich in Grenzen. Auf dem Testsystem benötigte Gocryptfs 8 MByte, um 1 GByte Daten im Safe zu verstauen.
Serve 1.4
Daten via HTTP bereitstellen
Quelle: https://github.com/fronbasal/serve
Lizenz: MIT
Alternativen: Lighttpd, Nginx
Dieses kleine Werkzeug macht seinem Namen alle Ehre. Es serviert Dateien und Verzeichnisse per HTTP. Anwender müssen den in Go implementierten Dienst nicht selbst kompilieren, denn im Github-Repository stehen Binaries für alle wichtigen Betriebssysteme und Plattformen bereit, darunter Ausgaben für Linux, Windows und Mac OS.
Eine aufwändige Konfiguration ist ebenfalls nicht erforderlich. Anwender steuern den Webserver über Parameter beim Start. In der Voreinstellung lauscht »serve« an Port 3000, der Dienst benötigt also keine Rootrechte. Wer einen anderen Port festlegen möchte, ruft »serve« zusammen mit »–port=« und einer anderen Nummer auf. In der Voreinstellung stellt »serve« das Verzeichnis per HTTP bereit, in dem Nutzer das Tool aufgerufen haben. Wer einen anderen Ordner anbieten möchte, definiert ihn beim Aufruf als letzten Parameter.
Ist im Verzeichnis eine »index.html«-Datei vorhanden, dann zeigt der Client diese an, sobald die Verbindung steht. Ohne Indexdatei erzeugt »serve« eine Liste aller enthaltenen Objekte. Benutzer navigieren im Webclient ihrer Wahl durch Verzeichnisstrukturen; »serve« erfasst auch symbolische Links, die aus dem angebotenen Ordner herausführen.
Serve besticht vor allem durch seine Geschwindigkeit. Einen Schalter, um den Dienst im Hintergrund zu betreiben, hat das Tool leider nicht. Auch auf Authentifizierungs-Mechanismen, das Bereitstellen dynamischer Inhalte oder HTTPS müssen Anwender verzichten. Wer das sichere Protokoll wünscht, kann Serve mit einem Tool wie Stunnel kombinieren.











