Base64 ist eine Kodierung, welche es ermöglicht binäre Daten in ASCII-Zeichen zu kodieren. Genutzt wird diese Art der Kodierung unter anderem beim Versenden von Anhängen in Mails. Manchmal ist es notwendig solche Daten im Terminal wieder in ihre binäre Form zu verwandeln. Dazu kann unter Linux und macOS das Werkzeug base64 genutzt werden:
base64 base64.txt --decode > binary.dat
Mit diesem Befehl wird der Inhalt der Datei base64.txt dekodiert und in die Datei binary.dat geschrieben.
Für Backups nutze ich seit vielen Jahren rsync-time-backup. Allerdings hörte ich in letzter Zeit viel Gutes über die freie Software Restic. Restic selbst wird über GitHub entwickelt und ist unter der BSD-Lizenz in der Zweiklausel-Version lizenziert. Unter Linux und macOS kann Restic einfach über entsprechende Paketmanager installiert werden:
brew install restic
Restic arbeiten mit sogenannten Repositorys. In einem Repository befindet sich das entsprechende Backup mit all seinen Versionen. Um ein solchen Repository anzulegen wird der Befehl:
restic init --repo ./
genutzt. Bei Restic ist jedes Backup automatisch verschlüsselt, sodass bereits beim Anlegen eines Backups ein entsprechendes Passwort vergeben werden muss. Die Daten werden mit AES, bei 256 Bit, verschlüsselt.
restic.net
Danach kann theoretisch mit dem ersten Backup begonnen werden:
In diesem Fall würde der Ordner /Users/User/ in das Restic-Repository gesichert. Bevor das Backup startet, muss das entsprechende Passwort des Repositorys eingegeben werden. Anschließend wird der Nutzer über den Fortschritt des Prozesses informiert:
repository 567f35fa opened successfully, password is correct
created new cache in /Users/User/Library/Caches/restic
[0:09] 10 files 4.296 MiB, total 451 files 224.551 MiB, 0 errors
/Users/User/System/btrfstune
/Users/User/System/busybox
...
Nach dem Abschluss des Backups erscheint eine entsprechende Meldung im Terminal:
Files: 25 new, 0 changed, 0 unmodified
Dirs: 2 new, 0 changed, 0 unmodified
Added to the repo: 616.694 KiB
processed 25 files, 615.493 KiB in 0:00
snapshot 6c0d7af6 saved
Nun verfügt der Nutzer über ein Backup Repository mit einem bzw. mehreren Snapshots. Die angelegten Snapshots können über dem Befehl:
Anschließend wird der gewünschte Snapshop wieder hergestellt:
repository fd5947c7 opened successfully, password is correct
restoring > to /Users/User/System
Soll anstatt eines bestimmten Snapshot der letzte Snapshot wiederhergestellt werden so wird anstatt einer Snapshot-ID einfach latest als Wert angegeben. Soll nur eine einzelne Datei wiederhergestellt werden, ist das komplette zurückspielen eines Backup eher suboptimal. Für einen solchen Fall können die Snapshots im Dateisystem gemountet werden.
restic -r /Volumes/Volume/ResticRepository mount /Volumes/Volume/ResticRepositoryMounted
Anschließend wird das Repository im Dateisystem unter dem angegebenen Mountpoint eingebunden:
repository fd5947c7 opened successfully, password is correct
Now serving the repository at /Volumes/Volume/ResticRepositoryMounted
When finished, quit with Ctrl-c or umount the mountpoint.
Im Gegensatz zu den Befehlen zur Wiederherstellung des Backups muss beim Mounten keine Snapshot-ID angegeben werden. In der gemounteten Struktur werden stattdessen alle Snapshots angezeigt. Die gewünschte Datei zur Wiederherstellung kann somit gesucht und wiederhergestellt werden.
Beim Backup sollen in vielen Fällen bestimmte Dateien nicht gesichert werden. Dies können z. B. temporäre Dateien oder Caches sein. Um diese Datei vom Backup auszuschließen, kann ein sogenanntes Exclude File genutzt werden:
Neben diesen Basisfunktionalitäten, verfügt Restic über weitere Funktionen, so z. B. zum Löschen alter Snapshots nach bestimmten Regeln. Alles in allem wirkt Restic für mich wie eine durchdachte Backup-Lösung, deren Nutzung durchaus ins Auge gefasst werden kann.
Für die Verwaltung eines MikroTik-Routers können unterschiedlichste Möglichkeiten gewählt werden. Neben dem Webinterface, WinBox oder der Konfiguration über das Terminal, z.B. per SSH, gibt es seit einiger Zeit auch eine App für iOS.
Mit dieser App können die Geräte unterwegs verwaltet werden. Neben den Quick-Setup stehen auch die detaillierten Einstellungen der MikroTik-Router zur Verfügung.
Die MikroTik-App auf einem iPhone
Früher standen nur Drittanbieter-Apps für die mobile Verwaltung von MikroTik-Routern zur Verfügung. Im Gegensatz zu diesen verrichtet die offizielle MikroTik-App klaglos ihren Dienst.
Auf MikroTik-Routern läuft als Betriebssystem das sogenannte RouterOS. Dieses auf Linux basierende System ist für die Funktionalität des jeweiligen Routers zuständig. Zu jedem Router bzw. jeder RouterOS-Installation gehört eine entsprechende Lizenz. Im Terminal können sich die Informationen über die Lizenz über dem Befehl:
/system license print
angesehen werden. Der Nutzer erhält eine Auflistung der aktuellen Lizenz:
software-id: XXXX-XXXX
nlevel: 4
features:
MikroTik unterscheidet bei RouterOS-Lizenzen sogenannte Level. Um so höher das Level um so mehr VPN-Verbindungen und ähnliches können mit dem Gerät genutzt werden. Auch unterscheiden sich die unterschiedlichen Level nicht in ihrer Funktionalität. Im Normalfall ist die Lizenz sicher innerhalb des Routers abgelegt. Aber natürlich kann es passieren, dass die entsprechende Lizenz verloren geht. Für einen solchen Fall kann die Lizenz über das Terminal gesichert werden. Dazu dient der Befehl:
/system license output
Anschließend wird eine Datei nach dem Schema XXXX-XXXX auf dem Gerät abgelegt, welche z.B. über Files im Webinterface heruntergeladen werden kann. Soll die Lizenz später wieder auf dem Gerät aktiviert werden, kann hierfür der entsprechende Import genutzt werden:
/system license import file-name=XXXX-XXXX.key
Ist die Lizenz auf dem Gerät bereits vorhanden, erhält der Nutzer die Meldung:
Jeder MikroTik-Router verfügt über einen Namen. Dieser Name kann unter anderem über das Terminal verändert werden. Nachdem eine Verbindung zum Router per SSH aufgenommen wurde:
ssh admin@192.168.1.1
kann im Terminal ein neuer Name über den Befehl system identity vergeben werden:
/system identity set name=Xena
Die Änderung ist sofort wirksam, was sich im Terminal durch den veränderten Prompt bemerkbar macht.