Quantcast
Channel: Robert Kraus – krausens-online.de
Viewing all 71 articles
Browse latest View live

BackupPC 2/8: Grundinstallation Teil 2

$
0
0

Bis jetzt habe ich den Backuppc installiert und auch die erste Sicherung (Verzeichnis /etc des Backuppc) wude erstellt.
Jetzt erweitere ich die Einstellung von “localhost”, um das “home”-Verzeichnis.

Dazu öffne ich die Konfiguration von “localhost”.
Unter “Xfer” füge ich im Abschnitt “Tar Einstellungen” das “/home”-Verzeichnis hinzu (Speichern nicht vergessen)
backuppc-02-01 backuppc-02-02 backuppc-02-03
und lade unter “Admin Optionen” die Konfiguration neu.
backuppc-02-04
Zum Test erzeuge ich auf dem Backuppc im Filesystem ein neues Verzeichnis “/home/daten” und eine Datei “testdatei.txt” mit einen kleinen Text.
backuppc-02-05 backuppc-02-06

Zeit ein weiteres Backup zu starten (Egal ob inkrementell oder vollständig)
Ich habe mich für ein inkrementelles Backup entschieden, welches nach kurzer Zeit auf der Hauptseite des “localhost” auftaucht.
backuppc-02-07 backuppc-02-08 backuppc-02-09
Hier als Backup “1” geführt.
Ein Klick auf die “1” öffnet den Verzeichnisbaum.
backuppc-02-10
Hier sieht man, dass das Homeverzeichnis gesichert wurde.

Ok, bis jetzt wurden nur Dateien gesichert, Zeit eine Datei wieder herzustellen.
Zuerst lösche ich die Datei “/home/daten/testdatei.txt” und prüfe, ob diese wirklich gelöscht wurde.
backuppc-02-11 backuppc-02-12

Danach wähle ich im Backuppc unter “localhost” das Backup mit der “1” aus und navigiere bis zur der gesicherten Datei “testdatei.txt”. Hier wähle ich die Datei aus und klicke dann auf “Selektion wieder herstellen”
backuppc-02-13 backuppc-02-14
Ich wähle die erste Möglichkeit “Direkte Wiederherstellung”.
Dazu ist nicht viel zu beachten. Man könnte hier einen alternativen Wiederherstellungspfad angeben, aber ich belasse es bei der “Freigabe” “/home” (Xfer Einstellung) und dem Verzeichnis “/daten” (ursprünglicher Ort der Datei).
backuppc-02-15 backuppc-02-16
Und … Tja, Pech. Es gibt einen Fehler.
backuppc-02-17

Das Problem ist, dass Backuppc beim Restore standardmäßig über ssh arbeiten möchte.
Passen wir dies also einfach an.
Dazu in der Konfiguration von “localhost” unter “Xfer” die Zeile “TarClientRestoreCmd” von

$sshPath -q -x -l root $host env LC_ALL=C $tarPath -x -p --numeric-owner --same-owner -v -f - -C $shareName+

zu

sudo $tarPath -x -p --numeric-owner --same-owner -v -f - -C $shareName+

ändern (und Speichern nicht vergessen).
backuppc-02-18 Backuppc-02-19 Backuppc-02-20

Neuer Versuch:
backuppc-02-21 backuppc-02-22
backuppc-02-23 backuppc-02-24
Und siehe da, Ausführung erfolgreich:
Backuppc-02-25

Gegenprobe im Filesystem
Backuppc-02-26
Passt.

Ein weiterer Weg eine Datei wieder herzustellen ist, diese als gezippte Datei auf den lokalen Rechner herunterzuladen.
Der Weg ist der Gleiche, nur dass man anstatt auf „Wiederherstellung starten“ auf „Tar Datei downloaden“ klickt.
Es erscheint ein Requester, in dem man die Datei speichern kann.
backuppc-02-27 Backuppc-02-28 Backuppc-02-29

Der Vorteil dieser Variante ist, dass man erst lokal die Datei entpacken und die darin enthaltenen Dateien ansehen kann, ohne gleich den originalen Zielpfad zu überschreiben.

Gut, bisher habe ich einen Backuppc, der sich selber sichert (“/etc” und “/home”) und ich kann Dateien auch wieder herstellen.

Weiter geht’s im Teil 3 mit dem Sichern von weiteren Hosts über das Netzwerk.


BackupPC 3/8: Linux-Host sichern

$
0
0

Da nun der Backuppc läuft und die Sicherung, sowie das Wiederherstellen, von Daten funktioniert, kommt der nächste Schritt: Sichern eines weiteren Hosts über das Netzwerk. Zuerst möchte ich meinen Raspberry sichern, also einen Linux-Host.

Hier sind ein paar Vorbereitungen notwendig, wie z.B.: das Einrichten von ssh und dessen Passwortfeien Zugriff auf den Host, sowie die Installation von rsync.

Schritt 1:
Installieren von “ssh” und die übertragung eines Schlüssles zum passwortlosen Login über “ssh”

apt-get install ssh rsync

Nach der Installation generiere ich einen SSH-Key für den User “backuppc”
Zuerst die Identität des Users “backuppc” annehmen

su backuppc

und dann den Schlüssel generieren

ssh-kegen -t rsa

Es wird im Laufe der Schlüsselgenerierung nach dem Speicherort gefragt, den ich einfach mit Return übernehme (Standard-pfad)
Ebenso wird eine Passphrase erfragt, welche ich in diesem Fall leer lasse (mit wäre sicherer).
backuppc-03-01 backuppc-03-02 backuppc-03-03
Nach der Generierung muss dieser Key nun noch auf den Client übertragen werden.
In diesem Fall mein Raspberry und dem User “pi”

ssh-copy-id -i /var/lib/backuppc/.ssh/id_rsa.pub pi@raspberry

Einmal mit “yes” bestätigen und danach das Passwort des Users “pi” eingeben.
backuppc-03-04 backuppc-03-05 backuppc-03-06
Jetzt kann schon mal probiert werden, sich auf dem Raspberry ohne Passwort Abfrage einzuloggen
backuppc-03-07
Funktioniert.
Schritt 2:
Installieren von rsync (wenn nicht schon vorhanden).
“rsync” sollte auf beiden Rechnern installiert sein.

apt-get install rsync

Da ich für die zukünftigen Sicherungen mich mit dem User Pi am Raspberry anmelden möchte, muss ich natürlich auch dem User Pi „root“-Rechte für den rsync-Befehl geben, sonst könnte ich nicht den gesamten Raspberry sichern, sondern nur Verzeichnisse, für die der User pi Zugriffsrechte hat.
Auf dem Raspberry füge ich deshalb in „sudo“ noch die Zeile

pi ALL=NOPASSWD:     /usr/bin/rsync

ein und starte sudo neu.
backuppc-03-08 backuppc-03-09
backuppc-03-10 backuppc-03-11
Als kleiner Hinweis zur Datensicherheit:
Man kann auch einen auf dem zu sichernden Linuxhost einen neuen neuen “Backup-User” anlegen.Ausgestattet mit den nötigen Rechten und einem sicheren Passwort, muss man nicht die Rechte des Standard-Users erweitern.

Schritt 3:
Jetzt geht es zur Einrichtung eines neuen Hosts.
Dazu melde ich mich am Backuppc an und klicke im linken Menü auf “Hosts ändern”
Ein Klick auf “Hinzufügen” erzeugt ein neues Eingabefeld und hier gebe ich den Rechnernamen und den zugreifenden User an. Und natürlich “Speichern” nicht vergessen.
backuppc-03-12 backuppc-03-13
Ab jetzt ist mein Raspberry auch schon verfügbar.
backuppc-03-14
Jetzt muss nur noch das Backup eingerichtet werden.
Ich wähle den Raspberry aus und gehe auf “Konfiguration ändern”.

Die Einstellungen für die Backuppfade sind unter “Xfer” zu finden.
Unter “XferMethod” wähle ich “rsync”, die “ClientCharsetLegacy” ist (bei meinem Raspberry) UTF-8 und als “RsyncShareName” belasse ich das Wurzelverzeichnis auf “/” um den gesamten Raspberry zu sichern.
Ebenso muss auf dem Backuppc in der Raspberry-Backup-Konfiguration unter Xfer der Zugriff angepasst werden.
Unter RsyncClientCmd und RsyncClientRestoreCmd muss die Zeile dahingeben geändert werden, dass der User “root” gegen “pi” ausgetauscht, und vor “$rsyncPath” ein “sudo” hinzugefügt wird.

$sshPath -q -x -l pi $host sudo $rsyncPath $argList+

backuppc-03-15 backuppc-03-16 backuppc-03-17
Auf Speichern klicken und im linken Menü unter “Admin Optionen” einen Reload ausführen.

Zeit für ein Backup:
Auf der “Raspberry”-Hauptseite ein Klick auf “Starte vollständiges Backup” und dies im folgenden Fenster nochmal bestätigen.
Auf der Status-Seite wird jetzt unter “Zur Zeit aktive Aufträge” der Raspberry angezeigt.
backuppc-03-18 backuppc-03-19
Das dauert jetzt eine ganze Weile … Zeit für die Familie 😉
…….
Irgendwann ist das Backup dann auch fertig.

Jetzt öffne ich auf der “Raspberry”-Hauptseite das Backup “0”
backuppc-03-20 backuppc-03-21
Passt – der Raspberry wurde gesichert.

Und wenn alles wie vorgegeben eingestellt wurde, dann funktioniert auch das Recovery.
Testumgebung:
Auf dem Raspberry wurde eine Datei ~/daten/versuchstdatei.txt angelegt und ein weiteres Backup ausgeführt (inkrementell).
Danach wurde eine Wiederherstellung ausgeführt.
backuppc-03-22 backuppc-03-23
backuppc-03-24 backuppc-03-25
Funktioniert.

Im Teil 4 möchte ich, bevor ich die Backuphäufigkeit einstelle, noch einen Windows-Client in das Backup einbinden.

BackupPC 4/8: Windows-Host sichern

$
0
0

Bis jetzt sichere ich mit dem “Backuppc” meinen Raspberry und die Verzeichnisse “/etc” und “/home” himself.
Bevor es jetzt in die Einstellungen geht, binde ich noch einen Windows-Client ein.

Hier gibt es auch gleich wieder ein paar Haken und Ösen.
Gesichert wird ein Windowsclient über dessen Freigaben. Ich benötige demnach auf dem “Backuppc” Samba – oder genauer den Samba-Client (smbclient).
Auf dem Windows-Host benötige ich dafür Freigaben. Windows besitzt sogenannte “Administrative Freigaben” (das Windowslaufwerk hat in der Regel C$), welche aber auch einen administrativen Zugriff erfordern. In einer Domäne, wie sie in Firmen vorkommt, ist dies u.U der Domänenadmin. Im Heimnetzwerk wäre es der User mit lokalen Administrationsrechten – wenn denn die “Administrativen Freigaben” aktiv sind … und das sind sie ab Windows 7 (oder schon ab Vista?) nicht mehr.
Man steht also vor der Wahl, die “Administrativen Freigaben” zu aktivieren, oder selber Freigaben zu erzeugen, die gesichert werden sollen.

Ich entscheide mich für letzteres und gebe mein Userverzeichnis für das Backup frei.
HINWEIS !!!
Eine Freigabe ist natürlich auch irgendwo ein Sicherheitsrisiko. Ein vernünftiges Passwort ist dafür eine Mindestanforderung. Noch besser wäre einen “Backup-User” anzulegen, welche die Rechte für die benötigten Verzeichnisse hat. Aber hier geht es mir vorrangig um den “Backuppc” und deshalb gehe ich an dieser Stelle nicht tiefer darauf ein.

Unter Windows habe ich über mein User-Konto eine Freigabe erzeugt, welche “Daten” heißt.
Der Zugriff darauf habe ich getestet und funktioniert …
backuppc-04-01 backuppc-04-02

… weiter geht’s mit der Einrichtung unter Backuppc

Zuerst installiere ich smbclient

apt-get install smbclient

Im Backuppc erzeuge ich unter “Hosts ändern” einen weiteren Eintrag…
backuppc-04-03
….und wähle dann den neuen Rechner aus um die Xfer-Einstellungen vorzunehmen

Wichtig ist hier der Eintrag “SmbShareName”, welche im Standard auf die “Administrative Freigabe” C$ eingestellt ist. In meinem Fall muss ich diese jetzt auf meinen Freigabenamen “Daten” ändern und unter “SmbShareUserName”, bzw. “SmbSharePasswd”, trage ich meinen Usernamen und das Passwort des Windows-Rechners ein.
Der Rest bleibt erstmal unverändert.
backuppc-04-05
In der Hauptseite von “NBVOSTRO3750” starte ich nun ein vollständiges Backup und warte, bis dieses ausgeführt wurde.
backuppc-04-06
Je nach Datenmenge kann das schon mal etwas dauern ….
backuppc-04-07
Familienzeit 😉

Nach dem das Backup fertig ist, öffne ich auf dem Backuppc die Hauptseite meines Windowsrechners und klicke hier auf das Backup “0”
backuppc-04-08 backuppc-04-09
Siehe da, das Backup wurde ausgeführt.

Gegenprobe mit einem Recovery:
Ich erzeuge auf dem Windows-Client eine kleine Datei unter “Dokumente” mit dem Namen “Test.txt” und starte ein inkrementelles Backup.
Das inkrementelle Backup ist, nach der Fertigstellung, als Backup Nr. 1 aufgeführt.
Ein Klick darauf öffnet den Dateibrowser. In diesem navigiere ich zu der Datei “Test.txt” und stelle diese wieder her.
backuppc-04-10 backuppc-04-11
backuppc-04-12 backuppc-04-13
Funktioniert .

Bis jetzt kann ich mit dem Backuppc
– den Backuppc selber
– Linux-Hosts
– und Windows-Hosts
sichern.

Im 5. Teil gibt es einen kleinen Einblick auf die Einstellungen zur Steuerung der Backups.

BackupPC 5/8: erweiterte Einstellungen

$
0
0

Um die Sicherungen des Backuppc zu steuern, stelle ich jetzt die Backuphäufigkeit, sowie noch ein paar Parameter zur Steuerung der Backups, ein.
Wichtig ist hier auch die Erreichbarkeit der zu sichernden Systeme.

Eine grundsätzliche Frage ist, wann der Backuppc sichern soll. Ich möchte, dass er abends um 20 Uhr mit dem Backup beginnt.
Dazu im linken Menü den Eintrag “Konfiguration ändern” auswählen und hier die Parameter für “Server” auswählen.
Den Parameter “WakeupSchedule” ändere ich auf 20 (Backupstartzeit 20 Uhr).
backuppc-05-01
Beim Backuppc wird auch ein “Backuppc_nightlyrun” ausgeführt, welcher für das Löschen alter Dateien zuständig ist. Ohne weitere Angaben, wird dieser zusammen mit dem Backup ausgeführt.
Wird bei “WakeupSchedule” mehr als eine Angabe gemacht, so wird die erste Angabe als Start für den “Backuppc_nightlyrun” angenommen.
Ich möchte bei meinem Backuppc um 12 Uhr (Mittags) die Bereinigung starten, damit diese nicht mit dem Backup am Abend zusammen fällt.
backuppc-05-02
Da der “Backuppc_nightlyrun” lokal auf dem Backuppc ausgeführt wird, kann er auch während der “BlackoutPeriod” gestartet werden.

Sicherung meines Raspberry.
Der Raspberry läuft 24/7 und kann somit gut über den “Backuppc” gesichert werden.
Die Einstellungen erreiche ich über die “raspberry”-Hauptseite -> “Konfiguration ändern” ->”Backupplan”
Volle Backups
Hier wird eingestellt, wie oft ein Vollbackup ausgeführt werden soll. Im Standard ist dies einmal die Woche (also alle 7 Tage). Es soll mindestens 1 Backup aufgehoben werden (FullKeepCnt) -egal wie alt- und Backups, welche zum Löschen freigegeben worden sind, sollen auch spätestens 1 Tag später gelöscht werden(FullKeepCntMin). Das maximale Alter eines Backups darf 90 Tage sein.
Ok:
1. Was heißt das jetzt
und
2. Warum steht da (FullPeriod) 6,97 und nicht 7.
Mit den aktuellen Einstellungen, würde jetzt 7 Tage nach dem ersten Vollbackup ein weiteres Vollbackup ausgeführt (Full Period). Ist ein Backup älter als 90 Tage (FullAgeMax), so wird es gelöscht. 1 Backup in der aktuellen Backupphase wird maximal aufgehoben (FullKeepCnt) und 1 Backup soll grundsätzlich maximal aufgehoben werden (FullKeepCntMin).
Bei “FullPeriod” wird ein Wert angegeben, der ein wenig kleiner ist als der gewünschte Wert, da zu der Dauer der Wartezeit zum nächsten Backup noch die Dauer des “WakeupSchedule” kommt. Um hier keinen Versatz zu haben, startet man das Backup etwas früher.

Inkrementelle Backups
Hier sind die Einstellungen analog zu den Einstellungen von “volle Backups”. Zusätzlich gibt es hier noch “IncrLevels”, wo eingestellt werden kann, wie die Abhängigkeiten der inkrementellen Backups sind. Durch die Einstellung von “1” ist jedes inkrementelle Backup vom vorhergehenden Backup abhängig. Würde man hier “1,2,3,1,2,3” eingeben, so würde das erste inkrementelle Backup vom Vollbackup, die inkrementellen Backups 2 und 3 vom jeweils vorangehenden inkrementellen Backup abhängen. Das vierte inkrementelle Backup würde wieder vom letzten Vollbackup abhängig sein und das 5. und 6. vom 3. inkrementellen Backup.

Blackouts
Hier werden Bedingungen eingestellt, welche ein Backup verhindern.
Mit “BackupDisable” kann eingestellt werden, dass alle Backups ausgeführt werden (“0”), Backups nur manuell angestoßen werden können (“1” – Ausführung unter der Hauptseite des jeweiligen Hosts) oder Backups werden überhaupt nicht ausgeführt (“2”).
Unter “BlackoutPeriods” kann angegeben werden, wann der Backuppc nicht aktiv sein darf. Im Standard ist der Backuppc von Mo-Fr von 7:00h bis 19:30h nicht aktiv. Am Wochenende darf er aber durchgehen sichern.

Eigene Einstellungen:
Diese Art der Sicherung ist mir zu wenig, ich möchte meinen Raspberry für 2 Jahre sichern.
Dazu soll alle 4 Wochen ein Vollbackup ausgeführt werden und an allen anderen Tagen ein inkrementelles Backup.
4 Wochen sind umgerechnet 28 Tage, weshalb ich 27,8 als Wert (FullPeriod) wähle.
2 Jahre sind 24 Monate, 24 Monate * 28 Tage ergibt eine Aufbewahrungsdauer von 672 Tagen. Da die Monate aber nicht immer genau 4 Wochen lang sind, erhöhe ich diesen Wert um eine weitere Periode (28 Tage) und komme auf 700 Tage Aufbewahrungsdauer (FullAgeMax).
Die inkrementellen Backups sollen täglich erfolgen (IncrPeriod), weshalb ich den Standardwert von 0,97 behalte. Die inkrementellen Backups sollen ebenfalls 700 Tage erst gelöscht werden (IncrAgeMax) und auch vollständig erhalten bleiben (IncrKeepCnt).
backuppc-05-03
Die restlichen Parameter bleiben unangetastet.
Die Einstellungen noch speichern und in den “Admin Optionen” einen Reload durchführen.

Ab jetzt wird mein Raspberry jeden Tag gesichert und die Backups für 2 Jahre aufbewahrt.

Wo Licht ist, ist ja bekanntlich auch Schatten.
Über die Schatten des Backuppc´s schreibe ich im nächsten Beitrag.

BackupPC 6/8: Anmerkungen zum BackupPC

$
0
0

Nach dem nun der Backuppc läuft, möchte ich natürlich auch auf die Probleme hinweisen.
Der Backuppc hat 2 grundsätzliche Schwachstellen, aber auch noch einige Schönheitsfehler.

Schwachstelle 1: Datensicherheit
Da die Backup-Historie mit Hardlinks erzeugt werden, ist die Datensicherheit relativ schwach. Wird die ursprüngliche Datei auf dem Backuppc beschädigt, ist diese in jedem verfügbaren Backup defekt.
Hier sollte definitiv ein Backupkonzet mit mehreren Datenträgern verwirklicht werden und auch der Einsatz eines RAID-Systems ist hier sicherlich von Vorteil.
Zur Ehrenrettung muss ich allerdings auch sagen, dass ich in der Arbeit seit Jahren zwei Backuppc´s am Laufen habe (mit Software-Raid), und hier noch nie einen Datenverlust hatte. Ich nutze die Backuppc´s zusätzlich zu einer “richtigen”, kommerziellen, Backuplösung, weil mir das Handling über die Weboberfläche gut gefällt und auch sehr einfach zu bedienen ist.

Schwachstelle 2: die Angabe der Sicherungszeiten
Wie man sieht, kann beim Backuppc kein Backupdatum/-tag angegeben werden, sondern nur Perioden.
“FullPeriod” gibt an, in wieviel Tagen ein Vollbackup nach dem letzten erfolgreichen Vollbackup ausgeführt wird.
“Erfolgreich” ist hier das Stichwort.
Kann ein Vollbackup nicht ausgeführt werden, (weil z.B.: der zu sichernde Host nicht erreichbar ist) wird das Vollbackup einen Tag später erneut gestartet. Und das so lange, bis das Vollbackup erfolgreich war.
Ebenfalls kann es zu einer Verschiebung kommen, wenn ein Backup länger als einen Tag dauert, denn dann wird das Folgebackup einen Tag später gestartet. Dies hat auch wieder Auswirkungen auf desse Folgebackups usw usw.
Dadurch verschiebt sich also der komplette Backupplan.
Somit ist nicht sichergestellt, dass ein länger dauerndes Vollbackup, welches an einem Freitag statt finden soll, auch dauerhaft Freitags ausgeführt wird.
Natürlich gibt’s dafür dann auch Tricks (dazu ein späterer Blogeintrag)

Zu den Schönheitsfehler gehört, dass man nicht ohne weiteres unterschiedliche Backupstrategien per Host fahren kann. So könnte es ja sein, dass man Arbeits-Daten über die Dauer eine Jahres, Datenbank-Dumps aber nur für 2 Wochen vorhalten möchte.
Aber tricksen kann man ja, und dann geht auch sowas (Auch dazu später ein eigener Blogeintrag).

Ebenfalls unschön ist die Tatsache, dass man nicht eine komplette Wiederherstellungen über mehrere Gigabyte machen kann – genauer gesagt: nicht über die Weboberfläche.
Wenn ein Befehl länger dauert, gibt es im Browser irgendwann ein Timeout und der Vorgang bricht ab.
In diesem Fall ist nur die Wiederherstellung über die Konsole möglich, was natürlich den unbedarften User durchaus vor eine Herausforderung stellen kann.

Die Grenzen des Backuppc´s geben auch die zu sichernden Daten vor.
In meiner Arbeit werden viele Office-Dokumente gesichert, und so ist es möglich, dass über 51Terabyte Backupdaten (vor Pooling- und Komprimierung) auf unter 3,2Terabyte gesichert werden können.
backuppc-06-01
Bei großen Dateien, wie sie z.B.: bei der Videobearbeitung vorkommen, wird sich dieser Schnitt nicht verwirklichen lassen.
In einem solchen Fall müsste die Deduplizierung nicht auf File-Ebene, sondern auf Block-Ebene stattfinden.
Letzteres lässt sich aber mit dem Backuppc nicht realisieren.

BackupPC 7/8: BackupPC via Cron-Job steuern

$
0
0

Um das Problem der begrenzten Zeitsteuerung des Backuppc´s zu umgehen, kann man die Zeitsteuerung über einen Cronjob realisieren.
Die Befehle zur Ausführung sind relativ einfach, aber ohne ein bisschen Skripten geht es dann doch nicht.

Ich möchte an jedem ersten Samstag im Monat ein Vollbackup starten.
Dazu muss natürlich das Datum abgefragt werden. Start für ein kleines Skript.

$> mkdir /etc/cron.own
$> nano /etc/cron.own/raspberry-backup.sh

mit dem Inhalt

#!/bin/bash
#Auslesen des Wochentages und Übergabe in die Variable "Wochentag"
WOCHENTAG=`date +%w`
#Auslesen Monatstages und Übergabe in die Variable "Monatstag"
MONATSTAG=`date +%d`
# Abfrage auf den ersten Freitag im Monat
if [[ $MONATSTAG -ge 1 && $MONATSTAG -le 7 && $WOCHENTAG -eq 6]]; then
  su backuppc -c "/usr/share/backuppc/bin/BackupPC_serverMesg backup raspberry raspberry backuppc 1"
else
  su backuppc -c "/usr/share/backuppc/bin/BackupPC_serverMesg backup raspberry raspberry backuppc 0"
fi
exit 0

Der erste Samstag in einem Monat muss logischerweise innerhalb des (größer/gleich)1. und (kleiner/gleich)7. Tages eines Monats sein.
Der Samstag ist der 6. Wochentag – das sind die Bedingungen der IF-Abfrage.
Trifft dies zu, so wird -als User “backuppc” (su backuppc)- das BackupPC_serverMesg für “raspberry” ausgeführt. Die Angabe am Ende steht für ein Vollbackup (backuppc 1) oder ein inkrementelles Backup (backuppc 0)

Jetzt muss noch angegeben werden, wann das Backup ausgeführt wird.
Das wird in der crontab erledigt.

$> crontab

einfügen der Zeile

#Raspberry-Backup
00 20  * * 1-6   root  /etc/cron.own/raspberry-backup.sh

Somit wird jetzt Montags bis Samstag um 20 Uhr das Backup ausgeführt.
Sonntags wird kein Backup ausgeführt.

In Kombination mit dem Skript, wird jetzt zuverlässig an jeden ersten Samstag das Vollbackup, an allen anderen Montage bis Samstage wird ein inkrementelles Backup ausgeführt.

Einen Wehrmutstropfen gibt es noch.
Würde das inkrementelle Backup am Freitag nicht fertig werden, so kann das Vollbackup am Samstag nicht starten.
Grundsätzlich ist das kein Problem, da das nächste inkrementelle Backup am Montag trotzdem wieder beginnt, mit Bezug auf das letzte inkrementelle Backup.
Hier wäre noch die Möglichkeit die Prozsse auf ein aktives Sichern zu prüfen und mit einem “kill”-Befehl abzuschießen.
Aber das ist eine unschöne Lösung.
Sollten Backupzeiten nicht mehr ausreichen, so sollte man sich lieber Gedanken um die Backupstrategie zu machen.

BackupPC 8/8: Ein Host, mehrere Backupstrategien parallel nutzen

$
0
0

Das Hauptproblem des Backuppc ist, dass man nur eine Konfiguration pro Host einstellen kann. Es gibt aber Situationen, in denen unterschiedliche Verzeichnisse eines Hosts unterschiedliche Aufbewahurungszeiten erfordern.
Aber auch dafür gibt einen Trick.

Bei dem aktuellen Problem sollte ein Server mit Arbeits-Daten und einer Datenbank gesichert werden.
Vorhaltezeit der Daten: 1Jahr
Vorhaltezeit der SQL-Dumps: 1Woche

Problem:
Man kann unter “Hosts” nicht mehrere Einträge mit dem gleichen Rechnernamen anlegen.
Lösung:
Man verwendet einen anderen Rechnernamen
Wenn man einen Rechner z.B.: „Fileserver“ und „Fileserver_SQL“ nennt, wird der Rechner mit dem namen „Fileserver_SQL“ nicht gefunden/aufgelöst.
Genau hier liegt das Problem.

Schritt 1: Backuppc
Der Backuppc muss den Rechnernamen auflösen können. Unter Linux recht einfach zu lösen.
In der “/etc/hosts”-Datei den Servernamen und IP-Adresse zuweisen.
z.B.:

192.168.0.199  Fileserver
192.168.0.199  Fileserver_SQL

Schritt 2a: Linux-Client
Hier fehlt nur noch das übertragen des ssh-Schlüssels mit dem neuen Rechnernamen

$> ssh-copy-id -i /var/lib/backuppc/.ssh/id_rsa.pub user@Fileserver
$> ssh-copy-id -i /var/lib/backuppc/.ssh/id_rsa.pub user@Fileserver_SQL

Mehr ist hier nicht nötig.

Schritt 2b: Windows-Client
Bei einem Windows-System (in meinem Fall war es ein Windows-Server 2003) wird aber folgende Fehlermeldung im Backuppc geloggt:
(Fehlermeldung tree connect failed: NT_STATUS_DUPLICATE_NAME)
Hier sind noch Änderungen an der Registry des Windowsservers vorzunehmen.
In der Registry zu HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters navigieren
und folgendes hinzufügen (Neu erstellen):

Wertname: DisableStrictNameChecking 
Datentyp: REG_DWORD 
Basis: Dezima 
Wert: 1

Nach einem Neustart aktzeptiert der Windowsserver auch Verbindungen mit „falschen“ Namen.

Siehe dazu auch meinen etwas älteren Eintrag bei debianforum.de

Word 2010/2013: geschütztes Leerzeichen

$
0
0

Ein geschütztes Leerzeichen wird immer dann verwendet, wenn Wörter nicht getrennt werden sollen. Die ist z.B.: bei Namen, Daten oder Maßeinheiten der Fall. Leider hat Microsoft bei Office 2013 eine Änderung in der Formatierung vorgenommen.

Word 2010
Schreibt man einen einfachen Text …
ge-leer-01
..und zwingt diesen in einen Blocksatz, so werden unschöne Lücken im Datum den dem Namen erzeugt.
ge-leer-02

Ersetzt man die Leerzeichen im Datum und im Namen durch geschützte Leerzeichen, bleiben diese Angaben zusammen. Das geschützte Leerzeichen wird durch die Tastenkombination [Strg]+[Umschalt]+ [Leertaste] eingefügt.
ge-leer-03
Ersichtlich wird das geschützte Leerzeichen, wenn die Steuerzeichen sichtbar gemacht werden. Dann wird ein geschütztes Leerzeichen mit einen kleinen Kreis gekennzeichnet.
ge-leer-03a
Als Gegenprobe dazu der Satz ohne geschütztes Leerzeichen und eingeschalteten Steuerzeichen.
ge-leer-03b
Jetzt wieder den Blocksatz aktivieren und man erkennt, dass das Datum und der Name jeweils zusammen bleiben.
ge-leer-03c
Beweisführung mit eingeschalteten Steuerzeichen.
ge-leer-03d

Zeilenumbrüche
Ein weiteres Verhalten von geschützten Steuerzeichen ist, dass diese Angaben auch immer komplett umgebrochen werden.
In diesem Fall ist die Maßangabe am Zeilenende umgebrochen.
ge-leer-04
Mit einen geschützten Leerzeichen wird die Maßangabe aber zusammen gehalten und so bei einem Zeilenumbruch zusammen in die neu Zeile geschrieben.
ge-leer-04a

Word 2013
Leider ist bei Word 2013 die Formatierung geändert worden. Hier hält zwar ein geschütztes Leerzeichen bei einem Zeilenumbruch die Wörter zusammen (wie bei Word 2010), aber bei einem Blocksatz werden jedoch wieder die gleichen großen Lücken gesetzt, wie bei einem normalen Leerzeichen.
Abhilfe leistet hier nur das Einfügen eines „Narrow No-Break Space“ (202f, Alt+C) erreichen kann man diese Zeichen über „Einfügen“ -> „Symbol“ -> „Weitere Symbole“
ge-leer-05
Alternativ kann man dann auch gerne eine eigene Tastenkombination für den “Narrow No-Break Space” angeben.
ge-leer-05a


Word: geschützter Bindestrich

$
0
0

Neben dem geschützten Leerzeichen, gibt es auch den geschützten Bindestrich. Damit kann verhindert werden, dass Wörter mit Bindestrich am Zeilenende umgebrochen werden. Ein kleines Beispiel.

Dieser Text beinhaltet ein Wort mit Bindestrich.
Word bricht am Zeilenende solche Wörter ab Bindestrich um.
ge-bind-01
Fügt man einen geschützten Bindestrich ein (mit Strg+Umschalt+-) wird das Wort komplett umgebrochen.
ge-bind-02
Erkennbar ist der geschützte Bindestrich bei eingeblendeten Steuerzeichen daran, dass er etwas länger ist als der normale Bindestrich.
ge-bind-03
Am besten erkennbar ist es im direkten Vergleich.
ge-bind-04

Backuppc: Archiv erzeugen

$
0
0

Neben den fortlaufenden Backups, bietet Backuppc auch die Möglichkeit Archive zu erstellen. Diese Archive können nicht lokal abgelegt werden, sondern auch auf externe Datenträger oder Streamer. Im Beispiel wird das Archiv auf einen USB-Datenträger ausgelagert.

Zuerst lege ich am Backuppc ein lokales Verzeichnis „archiv“ an….

#> sudo mkdir /archiv

… und mounte auch gleich die externe Festplatte.

#> sudo mount /dev/sdc1 /archiv

Da ich später mit dem User „backuppc“ auf dieses Laufwerk zugreifen werden, ändere ich die Benutzer- und Gruppenzugehörigkeit.

#> sudo chown backuppc:backuppc /archiv

Jetzt geht’s in die Weboberfläche des Backuppc´s
Unter „Host ändern“ füge ich jetzt einen neuen Eintrag mit den Namen „archiv“ ein (mit user backuppc)
backuppc-archiv-01 backuppc-archiv-02
Wichtig ist hier die Einstellung unter „Xfer“ -> „XferMethod“ auf „archive“ zu stellen….
backuppc-archiv-03
… und unter „ArchiveDest“ gebe ich das Verzeichnis „/archiv“ ein,…
backuppc-archiv-04
…in welches der externe USB-Datenträger gemountet wurde.
Hier könnte auch die Komprimierung geändert werden, aber ich belasse sie in der original Einstellung.
backuppc-archiv-05 backuppc-archiv-06
Die Einstellungen müssen noch mit “Speichern” übernommen werden.
backuppc-archiv-07

Jetzt muss man ein weiteres Mal auf die Konsole und noch unter PC den Host „archiv“ hinzufügen

#> cd /var/lib/backuppc/pc 
#> sudo mkdir ./archiv
#> chown backuppc:backuppc ./archiv

Das sollte es gewesen sein.
Es ist Zeit, im Webinterface ein Archiv zu erzeugen.
Dazu wählt man unter „Computer auswählen“ den neu angelegten „archiv“-Eintrag aus.
backuppc-archiv-08
Wenn noch kein Archiv erzeugt wurde, dann hat man nur die Auswahl eine Archivierung zu starten oder zu stoppen.
backuppc-archiv-09
Also los: Archivierung starten.
Ich wähle das Backup des Raspberry aus und wähle „Gewählte Computer archivieren“.
backuppc-archiv-10
Die zuvor eingestellten Werte für Zielpfad und Komprimierung werden aus der zuvor ausgeführten Konfiguration übernommen.
backuppc-archiv-11
Jetzt den Button “Archivierung starten” klicken (wird mit einer Meldung bestätigt)
backuppc-archiv-12
Auf der Hauptseite sieht man nun den Archivierungsjob…
backuppc-archiv-14
…jetzt heißt es erstmal warten.
Ist das Archiv erstellt, kann man unter „Computer wählen“ -> „Archiv“
backuppc-archiv-08
Das Archiv aufrufen und kontrollieren
backuppc-archiv-16 backuppc-archiv-17
Das Archiv hat immer den Namen des archivierten Hosts und die Nummer des verwendeten Backups des Hosts
(z.B.: raspberry.6.tar = Host “raspberry”, letztes Backup war die Nummer „6“).
Hat man bei der Komprimierung „none“ ausgewählt, lautet die erzeugte Datei in meinem Fall “raspberry.6.tar.raw”
Mit Komprimierung lautet der Dateiname “raspberry.6.tar.gz”.
Hat man beim Archivieren unter „Aufteilen in“ einen Wert angegeben (z.B.: 500 Megabyte), wird das Archiv in ca. 500MB (evtl. etwas kleinere) Teile aufgesplittet.
backuppc-archiv-18
Diese tragen dann den Namen “raspberry.6.tar.aa   +   raspberry.6.tar.ab   +    raspberry.6.tar.ac” usw …
Diese Dateien kann man auch auf andere Datenträger kopieren oder duplizieren.
Die Archive können nun ganz einfach entpackt werden.
Unter Windows kann z.B.: der kostenlose Packer 7zip verwendet werden, unter Linux das integrierte „tar“.
Zum Entpacken erzeuge ich lokal ein Verzeichnis mit dem Namen „restore“ und entpacke darin das Archiv. (zu Testzwecken auf dem Backuppc selbst).

#> sudo Mkdir /restore
#> cd /restore

Ein ungepacktes Archiv kann einfach mit

#> sudo tar xf /archive/raspberry.6.tar.raw

, ein gepacktes Archiv wird mit

#> sudo tar zxf /archive/raspberry.6.tar.gz

und ein gesplittetes Archiv mit dem Befehl

#> sudo cat /archive/raspberry.6.tar.*| tar zx

entpackt werden.

Im Ordner „restore“ können nun die Daten normal gesucht/verschoben/kopiert werden.

Adobe-DNG-Converter: RAW-Dateien neuerer Kameras nutzen.

$
0
0

Durch den Kauf einer neuen Kamera, erkannte meine Software „Silkypix“ die erzeugten RAW-Dateien nicht mehr. Zwar lag eine abgespeckte Version von „Silkypix“ der Kamera bei (welche meine RAW-Dateien auch lesen konnte), aber es fehlen dann eben doch einige Funktionen aus der Pro-Version. Hilfe fand ich beim kostenlosen Adobe DNG Converter.

Zwei Anmerkungen will ich vorab noch loswerden.

1. Ich fotografiere selten in RAW. Ich möchte Fotos machen und nicht stundelang irgendwelche Fotos entwickeln. RAW verwende ich nur in Situationen, in denen ich absolut extrem wichtige Fotos mache (passiert seltener als man denkt) und die Lichtverhältnisse eher im suboptimalen Bereich liegen.

2. Die Hauptanwendung des DNG-Converter ist eigentlich das Erzeugen von „Digitalen Negativen“ (DNG). Dies ist ein offenes Archivformat und sollte die Nutzbarkeit der Bilder (Bild-Rohdaten) für sehr lange Zeit garantieren (RAW-Formate wandeln sich in kürzeren Zyklen).

Wie half mir der DNG-Converter in meiner Situation weiter.
Die meisten RAW-Konverter unterstützen das DNG-Format, so auch das von mir eingesetzte „Silkypix“.
Der DNG-Converter wiederum ist sehr aktuell, was neue Formate angeht. In meinem Fall kam die Version 9.3 zum Einsatz, wobei bereits die Version 9.1 meine Kamera unterstützt hätte.
Mit dieser Kombination war es mir also möglich, meine Raw-Dateien der neuen Kamera als umgewandelte DNG-Datei in meinem RAW-Konverter zu entwickeln.

Was mir am DNG-Converter gut gefällt, ist das Batch-Umwandeln ganzer Verzeichnisse.
Auch ansonsten ist die Software sehr übersichtlich gehalten.
Adobe-DNG-Converter

Inzwischen gibt es ein kostenloses Update von Silkypix und ich benötige den DNG-Converter vorläufig nicht mehr.
Ich werden ihn aber weiterhin im Auge behalten.
Vielleicht ist das DNG-Format ja doch irgendwie interessant…

WLAN-Hardware: Unterstützte Frequenzen herausfinden (Windows/Linux)

$
0
0

Letztens konnte ich mich mit meinem Laptop nicht mit dem WLAN-Router unseres Linux-Stammtisches verbinden. Andere Mitglieder um mich herum waren aber bereits über WLAN im Internet. Man kam ich mir bescheuert vor…

Das grundsätzliche Problem war, dass das „Stammtisch-Netz“ gar nicht in meiner Netzwerk-Übersicht auftauchte.
Gegencheck: Im Handy wurde das WLAN-Netz gefunden.
Der „Fehler“ war dann schnell gefunden: im (neuen) Router was das 2,4Ghz-Band deaktiviert.
Ok – die Lösung war schnell gefunden, bleibt aber die Frage: wie kann ich herausfinden, welche Frequenzen meine WLAN-Karte im Laptop unterstützt.

Windows:
(für Linux siehe im Anschluss)
Das Auslesen der WLAN-Funktionen unter Windows geht mit

netsh wlan show drivers

Im Output ist die Zeile „Unterstütze Funktypen“ interessant

C:\Users\User>netsh wlan show driver
Schnittstellenname: WiFi
…
    Unterstützte Funktypen    : 802.11b 802.11g 802.11n
…

Hier ist wichtig zu wissen, welche Frequenz von welchem Standard genutzt wird.
2,4Ghz: 802.11 b/g/n
5Ghz: 802.11 n/a/ac/h/j

Ok: meine Karte unterstützt den Standard 802.11n.
Warum also wurde das 5Ghz-Band des Routers nicht erkannt?
Der N-Standard ist zwar für 2,4Ghz und 5Ghz definiert, es gibt aber „N“-Hardware, welche ausschließlich das 2,4Ghz-Band unterstützt.
Herzlichen Glückwunsch – ich habe eine solche.

Linux:
Linux ist beim Auslesen etwas gesprächiger.
Zuerst muss festgestellt werden, welche Bezeichnung die Wlan-Karte hat.
Ich setze hier die “wireless-tools”-Installation voraus.

user@pc:~# apt-get install wireless-tools

Danach hat man die Qual der Wahl:
das gute alte Ifconfig:

user@pc:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.20.49  netmask 255.255.240.0  broadcast 172.16.31.255
        inet6 fe80::226:b9ff:fee7:a59f  prefixlen 64  scopeid 0x20<link>
        ether 00:26:b9:e7:a5:9f  txqueuelen 1000  (Ethernet)
        RX packets 23476631  bytes 1728704953 (1.6 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 42156351  bytes 63561806932 (59.1 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 20  memory 0xe9600000-e9620000  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether c4:46:19:5f:d5:fb  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

iwconfig (aus dem “wireless-tools”-Paket)

user@pc:~# iwconfig
eth0      no wireless extensions.

lo        no wireless extensions.

wlan0     IEEE 802.11abgn  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=19 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

Der “ip”-Befehl

user@pc:~# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:26:b9:e7:a5:9f brd ff:ff:ff:ff:ff:ff
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq qlen 1000
    link/ether c4:46:19:5f:d5:fb brd ff:ff:ff:ff:ff:ff

Die Gerätebezeichnungen können variieren, so würde eine Abfrage z.B.: bei Arch-Linux dieses Ergebnis liefern.

[user@PC ~]$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s25: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
    link/ether 8c:73:6e:99:95:c9 brd ff:ff:ff:ff:ff:ff
3: wlp16s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 4c:ed:de:9f:e8:c0 brd ff:ff:ff:ff:ff:ff

Die verwendbaren Frequenzen können mit “iwlist” (ebenfalls im “wireless-tools”-Paket enthalten) angezeigt werden.
Syntax: iwlist <gerät> freq   (oder auch channel)

user@pc:~# sudo iwlist wlan0 freq
wlan0     13 channels in total; available frequencies :
          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          Channel 03 : 2.422 GHz
          Channel 04 : 2.427 GHz
          Channel 05 : 2.432 GHz
          Channel 06 : 2.437 GHz
          Channel 07 : 2.442 GHz
          Channel 08 : 2.447 GHz
          Channel 09 : 2.452 GHz
          Channel 10 : 2.457 GHz
          Channel 11 : 2.462 GHz
          Channel 12 : 2.467 GHz
          Channel 13 : 2.472 GHz

Hier die Ausgabe von einem anderen Laptop mit Dual-Band-Unterstützung:

user@pc:~# sudo iwlist wlan0 freq
wlan0     32 channels in total; available frequencies :
          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          Channel 03 : 2.422 GHz
          Channel 04 : 2.427 GHz
          Channel 05 : 2.432 GHz
          Channel 06 : 2.437 GHz
          Channel 07 : 2.442 GHz
          Channel 08 : 2.447 GHz
          Channel 09 : 2.452 GHz
          Channel 10 : 2.457 GHz
          Channel 11 : 2.462 GHz
          Channel 12 : 2.467 GHz
          Channel 13 : 2.472 GHz
          Channel 36 : 5.18 GHz
          Channel 40 : 5.2 GHz
          Channel 44 : 5.22 GHz
          Channel 48 : 5.24 GHz
          Channel 52 : 5.26 GHz
          Channel 56 : 5.28 GHz
          Channel 60 : 5.3 GHz
          Channel 64 : 5.32 GHz
          Channel 100 : 5.5 GHz
          Channel 104 : 5.52 GHz
          Channel 108 : 5.54 GHz
          Channel 112 : 5.56 GHz
          Channel 116 : 5.58 GHz
          Channel 120 : 5.6 GHz
          Channel 124 : 5.62 GHz
          Channel 128 : 5.64 GHz
          Channel 132 : 5.66 GHz
          Channel 136 : 5.68 GHz
          Channel 140 : 5.7 GHz

Der Unterschied ist offensichtlich.

Alternative Abfrage
Alternativ kann auch der Befehl „iw“ genutzt werden.

user@pc:~# apt-get install iw

Interessant ist in diesem Fall der Abschnitt “Frequencies”. Für einen schnellen Überblick könnte man auch den Befehl mit einem “| grep Band” ausführen. Wird als Ergebnis “Band 1” und “Band 2” ausgegeben, ist es schonmal ein gutes Zeichen.

Hier zwei Beispiel-Ausgaben (extrem gekürzt)
Single-Band WLAN-Karte (nur 2,4 Ghz)

user@pc:~# iw phy 

Wiphy phy0
	...
	Band 1:
		Capabilities: 0x11ee
			...
		Bitrates (non-HT):
			* 1.0 Mbps
			* 2.0 Mbps (short preamble supported)
			* 5.5 Mbps (short preamble supported)
			* 11.0 Mbps (short preamble supported)
			* 6.0 Mbps
			* 9.0 Mbps
			* 12.0 Mbps
			* 18.0 Mbps
			* 24.0 Mbps
			* 36.0 Mbps
			* 48.0 Mbps
			* 54.0 Mbps
		Frequencies:
			* 2412 MHz [1] (16.0 dBm)
			* 2417 MHz [2] (16.0 dBm)
			* 2422 MHz [3] (16.0 dBm)
			* 2427 MHz [4] (16.0 dBm)
			* 2432 MHz [5] (16.0 dBm)
			* 2437 MHz [6] (16.0 dBm)
			* 2442 MHz [7] (16.0 dBm)
			* 2447 MHz [8] (16.0 dBm)
			* 2452 MHz [9] (16.0 dBm)
			* 2457 MHz [10] (16.0 dBm)
			* 2462 MHz [11] (16.0 dBm)
			* 2467 MHz [12] (16.0 dBm) (no IR)
			* 2472 MHz [13] (16.0 dBm) (no IR)
			* 2484 MHz [14] (disabled)
	Supported commands:
		 ...

Dual-Band fähige WLAN-Karte (2,4 und 5Ghz)

user@pc:~# iw phy 

Wiphy phy0
        ...
	Band 1:
		Capabilities: 0x70
			...
		Bitrates (non-HT):
			* 1.0 Mbps
			* 2.0 Mbps (short preamble supported)
			* 5.5 Mbps (short preamble supported)
			* 11.0 Mbps (short preamble supported)
			* 6.0 Mbps
			* 9.0 Mbps
			* 12.0 Mbps
			* 18.0 Mbps
			* 24.0 Mbps
			* 36.0 Mbps
			* 48.0 Mbps
			* 54.0 Mbps
		Frequencies:
			* 2412 MHz [1] (19.0 dBm)
			* 2417 MHz [2] (19.0 dBm)
			* 2422 MHz [3] (19.0 dBm)
			* 2427 MHz [4] (19.0 dBm)
			* 2432 MHz [5] (19.0 dBm)
			* 2437 MHz [6] (19.0 dBm)
			* 2442 MHz [7] (19.0 dBm)
			* 2447 MHz [8] (19.0 dBm)
			* 2452 MHz [9] (19.0 dBm)
			* 2457 MHz [10] (19.0 dBm)
			* 2462 MHz [11] (19.0 dBm)
			* 2467 MHz [12] (19.0 dBm) (passive scanning, no IBSS)
			* 2472 MHz [13] (19.0 dBm) (passive scanning, no IBSS)
			* 2484 MHz [14] (disabled)
		
	Band 2:
		Capabilities: 0x70
			...
		Bitrates (non-HT):
			* 6.0 Mbps
			* 9.0 Mbps
			* 12.0 Mbps
			* 18.0 Mbps
			* 24.0 Mbps
			* 36.0 Mbps
			* 48.0 Mbps
			* 54.0 Mbps
		Frequencies:
			* 5180 MHz [36] (21.0 dBm) (passive scanning, no IBSS)
			* 5200 MHz [40] (21.0 dBm) (passive scanning, no IBSS)
			* 5220 MHz [44] (21.0 dBm) (passive scanning, no IBSS)
			* 5240 MHz [48] (21.0 dBm) (passive scanning, no IBSS)
			* 5260 MHz [52] (21.0 dBm) (passive scanning, no IBSS, radar detection)
			* 5280 MHz [56] (21.0 dBm) (passive scanning, no IBSS, radar detection)
			* 5300 MHz [60] (21.0 dBm) (passive scanning, no IBSS, radar detection)
			* 5320 MHz [64] (21.0 dBm) (passive scanning, no IBSS, radar detection)
			* 5500 MHz [100] (21.0 dBm) (passive scanning, no IBSS, radar detection)
			* 5520 MHz [104] (21.0 dBm) (passive scanning, no IBSS, radar detection)
			* 5540 MHz [108] (21.0 dBm) (passive scanning, no IBSS, radar detection)
			* 5560 MHz [112] (21.0 dBm) (passive scanning, no IBSS, radar detection)
			* 5580 MHz [116] (21.0 dBm) (passive scanning, no IBSS, radar detection)
			* 5600 MHz [120] (21.0 dBm) (passive scanning, no IBSS, radar detection)
			* 5620 MHz [124] (21.0 dBm) (passive scanning, no IBSS, radar detection)
			* 5640 MHz [128] (21.0 dBm) (passive scanning, no IBSS, radar detection)
			* 5660 MHz [132] (21.0 dBm) (passive scanning, no IBSS, radar detection)
			* 5680 MHz [136] (21.0 dBm) (passive scanning, no IBSS, radar detection)
			* 5700 MHz [140] (21.0 dBm) (passive scanning, no IBSS, radar detection)
			* 5745 MHz [149] (21.0 dBm) (passive scanning, no IBSS)
			* 5765 MHz [153] (21.0 dBm) (passive scanning, no IBSS)
			* 5785 MHz [157] (21.0 dBm) (passive scanning, no IBSS)
			* 5805 MHz [161] (21.0 dBm) (passive scanning, no IBSS)
			* 5825 MHz [165] (21.0 dBm) (passive scanning, no IBSS)
	Supported commands:
                 ...

PHP-Downloadliste: scandir, pathinfo, filesize und filectime (Teil1/2)

$
0
0

Es sollten Dateien auf einer Intranetseite zum Download angeboten werden. Das Problem: die Anzahl der Dateien, die Dateinamen und Dateitypen sind dynamisch. Hier hilft der PHP-Befehl „scandir“

Mit „scandir()” kann man die Inhalt eines Verzeichnisses auflisten lassen. Das Ergebnis ist ein Array.
Ein einfaches Beispiel:
Ich erzeuge ein Verzeichnis „files“, welches die Dateien enthalten soll und eine Datei „index.php“ mit folgenden Inhalt.

<?php 
  $files = scandir('./files');
  echo($files);
?>

Das ist schon mal der Grundstock.
Es werden aber nicht alle Informationen ausgegeben.
Hierfür gibt es die Anweisung „pathinfo“.
Mit „pathinfo“ stehen die Parameter „basename“ (Dateiname mit Extension) , „filename“, „extension“ und „dirname“ (Verzeichnispfad) zur Verfügung.
Um die komplette Ausgabe in einen Link zu packen, müssen nun die Daten in die einzelnen Einträge unterteil und die Infos mit „pathinfo“ erweitert werden, des weiteren müssen für die Webseite auch die Links erzeugt werden.

Das Aufteilen der Einträge erfolgt mit „foreach“.

<?php 
  foreach (scandir('./files') as $file) {
    $fileinfo = pathinfo('./files'."/".$file);  
?>

Das Erzeugen der Links geht mit „<a href= ..>“.

<a href="<?php echo $fileinfo['dirname']."/".$fileinfo['basename'];?>"><?php echo $fileinfo['basename']; ?></a>

Und das Beenden der Anweisung nicht vergessen.

<?php
  };
?>

Jetzt könnte man, als zusätzliche Info, noch die Dateigröße mit angeben(„filesize“).

$size = filesize('./files'."/".$file);

und eventuell das Erstellungsdatum (filectime).

$cdate = filectime('./files'."/".$file);

Alternativ könnte auch die Zeit der letzten Änderung verwendet werden (filemtime)

Ebenso muss natürlich auch die Ausgabe angepasst werden.

<a href="<?php echo $fileinfo['dirname']."/".$fileinfo['basename'];?>"><?php echo $fileinfo['basename']; ?></a><?php echo $size ; ?> <?php echo $cdate ; ?>

Grundsätzlich funktioniert das Ganze schon mal, wenn auch die Ausgabe etwas unschön ist.
Die Angabe von „filectime“ ist in Sekunden seit 1.1.1970 0Uhr (Unix-Timestamp) und die Größe ist in Bytes.
Das Datum lässt sich in PHP leicht mit „date“ formatieren.

date("d.m.Y",$cdate)

Um die Filegröße in eine angenehme Form zu bringen, kann man diese umrechnen.

Kilobytes   / 1024
Megabytes   / 1048576    = (1024 *1024)
Gigabytes   / 1073741824 = (1024 * 1024 * 1024)

Um Kommastellen zu unterbinden, kann man den Befehl „ceil“ (Aufrunden) verwenden.
Da es sich bei mir um kleine Files handelte, habe ich die Ausgabe in Kilobyte gewählt.

$size = ceil(filesize('./files'."/".$file)/1024);

Hier das gesamte Listing

<?php 
  foreach (scandir('./files') as $file) {
      $fileinfo = pathinfo('./files'."/".$file);
      $size = ceil(filesize('./files'."/".$file)/1024);
      $cdate = filemtime('./files'."/".$file);
?>
<a href="<?php echo $fileinfo['dirname']."/".$fileinfo['basename'];?>"><?php echo $fileinfo['basename']; ?></a>&nbsp;&nbsp;<?php echo $size ; ?>kb vom:<?php echo date("d.m.Y",$cdate) ; ?><br>
<?php
  };
?>

Naja, es funktioniert schon mal, aber es bleibt noch Luft nach oben.
Weitere Anpassungen gibt es im Teil 2

PHP-Downloadliste: Nützliche Formatierung der Ausgabe.(Teil2/2)

$
0
0

Im Teil 1 ging es hauptsächlich um die Erzeugung einer dynamischen Downloadliste für eine Intranetseite. Grundsätzlich funktioniert es, aber es blieb noch Luft nach oben, denn es gibt ein paar unschöne Verhaltensweisen bei der Ausgabe.

Bis jetzt werden z.B.: die Verzeichnislinks „.“ und „..“ mit ausgegeben, sowie evtl. erstellte Verzeichnisse.
Da ich beides nicht möchte, werde ich diese abfangen.
„.“ und „..“ unterdrücke ich mit einer if-Abfrage

...
    if ($file != "." && $file != ".." ){
?>
<a href="<?php echo $fileinfo['dirname']."/".$fileinfo['basename'];?>"><?php echo $fileinfo['basename']; ?></a>&nbsp;&nbsp;<?php echo $size ; ?>kb vom:<?php echo date("d.m.Y",$cdate) ; ?><br>
<?php
    };
  };
?>

Um wirklich nur Dateien in der Liste anzuzeigen, teste ich auf „is_file“ oder auf (alternativ geht auch !is_dir )

if (is_file('./files'."/".$file)) {
  ...
}

Mit beiden Bedingungen sieht das Listing wie folgt aus

<?php 
  foreach (scandir('./files') as $file) {
    if (is_file('./files'."/".$file))  {
      $fileinfo = pathinfo('./files'."/".$file);
      $size = ceil(filesize('./files'."/".$file)/1024);
      $cdate = filemtime('./files'."/".$file);
      if ($file != "." && $file != ".." ){
?>
<a href="<?php echo $fileinfo['dirname']."/".$fileinfo['basename'];?>"><?php echo $fileinfo['basename']; ?></a>&nbsp;&nbsp;<?php echo $size ; ?>kb vom:<?php echo date("d.m.Y",$cdate) ; ?><br>
<?php
      }; 
    };
  };
?>

Um das Ganze nun noch in eine etwas ansprechendere Form zu bringen, übergebe ich das ganze in eine Auflistung: „<ul>…<li>…</li> …</ul>“
Somit ergibt sich folgendes Listing. (mit nochmal etwas angepassten Ausgabebeispiel.)

<h1>Downloadliste</h1>
<ul>
 <?php 
   foreach (scandir('./files') as $file) {
     if (is_file('./files'."/".$file))  {
       $fileinfo = pathinfo('./files'."/".$file);
       $size = ceil(filesize('./files'."/".$file)/1024);
       $cdate = filemtime('./files'."/".$file);
       if ($file != "." && $file != ".." ){
 ?>
   <li><a href="<?php echo $fileinfo['dirname']."/".$fileinfo['basename'];?>"><?php echo $fileinfo['filename']; ?></a>&nbsp;&nbsp;Typ: <?php echo $fileinfo['extension'] ; ?>&nbsp;&nbsp;Gr&ouml;&szlig;e: <?php echo $size ; ?>kb vom: <?php echo date("d.m.Y",$cdate) ; ?></li>
 <?php
       }; 
     };
   };
 ?>
</ul>

Das Ganz könnte man, anstatt in eine Auflistung, in einer Tabelle ausgeben.
Aber das kann ja Jeder für sich noch weiter ausprobieren….

Excel – Kopf-/Fußzeile mit Grafik

$
0
0

Wie in Word, kann man auch in Excel eine Kopf- und Fußzeile einfügen. Leider ist dies nicht so komfortabel wie unter Word. Der Vorteil einer Kopfzeile ist aber hier, dass diese Informationen relativ unabhängig von der Seitenskalierung sind.

Erreichen kann man die Kopf-/Fußzeilen-Einstellungen über unterschiedliche Wege.
Der direkte Weg geht über das Menü „Einfügen“ -> (Menüfeld „Text“) „Kopf- und Fußzeile“. Alternativ kann man auch über „Seitenlayout“ -> (Menüfeld „Seite einrichten“) „Drucktitel“ oder in der Druckvorschau auf „Seite einrichten“ klicken.
Die Kopf- und auch die Fußzeile teilen sich in je 3 Felder.
excel-kopf_01 excel-kopf_02 excel-kopf_03
Am interessantesten ist die Funktion „Kopf-/Fußzeile“, wenn Tabellenblätter in Excel unterschiedlich skaliert sind. Dadurch bleibt das Aussehen der Kopf-/Fußzeilen relativ gleich, besonders wenn Grafiken mit eingebunden werden sollen. Leider ist beim Einbinden von Grafiken keine direkte Vorschau möglich (WYSIWYG), sondern es wird nur der Platzhalter “&[Grafik]” angezeigt.
excel-kopf_04
Zusätzlich stehen noch rudimentäre Funktionen zum Einstellen der Größe, der Skalierung und für das Zuschneiden zur Verfügung.
excel-kopf_04b excel-kopf_04c
Es gibt noch einen zweiten Nachteil. Die Kopfzeile beeinflusst nicht den Beginn des Datenbereiches (im Gegensatz zu Word). Ist eine eingebundene Grafik zu groß, so wird sie von Datenbereich überlappt.
excel-kopf_05
(Im Beispiel wurde die erste Zeile mit einer Hintergrundfarbe belegt).
Um das Logo nicht zu überdecken, muss man nun den benötigten Platz für das Logo „selbstverantwortlich“ im Datenbereich festlegen.
excel-kopf_05a excel-kopf_05b
Auf die Fußzeile und die automatischen Funktionen, wie z.B.: Ausgabe von Seiten, Datum, Dateinamen, usw., möchte ich hier nicht eingehen.
Diese kurze Einleitung soll aber der Grundstock für die folgenden Beiträge sein, einer dynamisch gestalteten Kopfzeile in Excel.


Excel: dynamische Kopfzeile mit VBA – Teil1/4

$
0
0

Im vorliegenden Fall sollte für eine Excel-Datei mit 50 Tabellen eine Kopfzeile mit Überschrift und Logo versehen werden. Was das Ganze etwas tricky gemacht hat, waren unterschiedliche Inhalte in der Kopfzeile pro Tabellenblatt. Die Lösung: durch VBA realisierte, dynamische Kopfzeile.

Als Basis verwende ich die Datei aus dem Beitrag Excel – Kopf-/Fußzeile mit Grafikmit dem eingebundenen Logo, aber keinen weiteren Informationen in Kopf-/undFußzeile
In VBA kann man die Kopfzeile über den Befehl „PageSetup“ ansprechen.
Die jeweils 3 Blöcke der Kopf-/und Fußzeile können dann über die Parameter

.LeftHeader =
.CenterHeader =
.RightHeader=
bzw.
.LeftFooter =
.CenterFooter =
.RightFooter=

angesprochen werden.
Ok; Zeit das ganze mal umzusetzen.
Zuerst nehme ich in einem Tabellenblatt einen Bereich, den ich sicher nicht nutzen werde (der also ausserhalb des Druckbereiches liegt). In meinem Beispiel ist der nichtgenutzte Bereich ab Spalte M.
In Zelle M2 beginne ich mit der Beschreibung und in Zelle N2 steht dann der anzudruckende Text.
excel-kopf_101
Jetzt muss der Text noch in die Kopfzeile gebracht werden.
Dazu öffne ich den VBA-Editor ([ALT]+[F11]), klicke doppelt auf „Tabelle 1“ und füge folgende Anweisung ein.

Private Sub dynkopf()
  With ActiveSheet.PageSetup
        .LeftHeader = Range("N2")
  End With

End Sub

excel-kopf_102
Zu beachten ist jetzt, dass die Excel-Datei jetzt als „.xslm“ abgespeichert werden muss, damit die Makro-Funktionen erhalten bleiben. Dies wird, sollte es noch eine normale „.xslx“-Datei sein, auch als Hinweis ausgegeben.
excel-kopf_103
Wird nach dem Speichern jetzt der Play-Button im VBA-Editor gedrückt
excel-kopf_102a
wird in der Kopfzeile im linken Feld der Text aus der Zelle N2 angegeben. Alle anderen Felder der Kopf-/Fußzeile bleiben von der Aktion aber ausgeschlossen, denn im VBA-Code wird explizit das Feld „.LeftHeader“ angesprochen.
excel-kopf_102b
Funktioniert. Nächster Schritt
Da es eine Überschrift ist, soll diese natürlich auch etwas auffälliger gestaltet werden. Meine Wahl fällt auf die Schriftgröße „24“ und die Schriftart „Arial“ in „Fettschrift“.
Den VBA-Code wird dementsprechend ergänzt

Private Sub dynkopf()
  With ActiveSheet.PageSetup
        .LeftHeader = "&""ARIAL,Fett""&24" & Range("N2")
  End With

End Sub

excel-kopf_104
Und ergibt als Resultat
excel-kopf_105
Passt:
Im nächsten Beitrag wird die Kopfzeile mehrzeilig.

Excel: dynamische Kopfzeile mit VBA – Teil2/4 (mehrzeilig)

$
0
0

Im vorherigen Beitrag habe ich mit Hilfe von VBA einen Zelleninhalt in das linke Feld der Kopfzeile geschrieben und die Schriftart/-größe festgelegt. Jetzt soll die Kopfzeile mehrzeilig ausgeführt werden.

Zuerst ergänze ich die Daten für die Kopfzeile in der, ausserhalb des Druckbereichs liegenden, Zelle N3.
excel-kopf_201
Der VBA-Code muss nun mit einem Zeilenumbruch „Chr(10)“ (Anweisung für “neue Zeile”) ergänzt werden.
Da die zweite Zeile jedoch nicht in der gleichen Größe dargestellt werden soll, muss hier die Schriftart und -größe erneut übergeben werden.

Private Sub dynkopf()
  With ActiveSheet.PageSetup
        .LeftHeader = "&""ARIAL,Fett""&24" & Range("N2") & Chr(10) & "&""ARIAL,Fett Kursiv""&12" & Range("N3") 
  End With

End Sub

excel-kopf_202
Wird jetzt wieder der „Play“-Button im VBA-Editor gedrückt,
excel-kopf_202a
ergibt das folgendes Resultat.
excel-kopf_203
Klappt:
Erweitern wir das Ganze noch um zwei weitere Zeilen.
excel-kopf_204
Und mit entsprechend angepassten VB-Code

Private Sub dynkopf()
  With ActiveSheet.PageSetup
        .LeftHeader = "&""ARIAL,Fett""&24" & Range("N2") & Chr(10) & _
                      "&""ARIAL,Fett Kursiv""&12" & Range("N3") & Chr(10) & _
                      "&""ARIAL,Normal""&8" & Range("N4") & Chr(10) & Range("N5")
  End With

End Sub

excel-kopf_205
Ergibt das folgendes Resultat.
excel-kopf_206

Erzeugt man nun ein weiteres Tabellenblatt durch kopieren
excel-kopf_207
und passt den Inhalt an,
excel-kopf_208
wird nicht nur der Inhalt der Zellen kopiert, sondern auch die VBA-Anweisung der Quell-Tabelle.
excel-kopf_209
Drückt man jetzt, bei aktivierter neuen Tabelle, der „Play“-Button – oder einfach durch Umschalten der Tabellenblätter -, erhält auch das neue Tabellenblatt die gewünschte Kopfzeile mit den entsprechenden Inhalt.
excel-kopf_210

Grundsätzlich funktioniert es jetzt, aber bei mehreren Tabellenblätter wäre eine Änderung am Code umständlich, da er bei jedem Tabellenblatt geändert werden müsste.
Eine kleine Optimierung des VBA-Codes gibt es im nächsten Teil.

>

Excel: dynamische Kopfzeile mit VBA – Teil3/4 (VBA-Code anpassen)

$
0
0

Im vorherigen Teil habe ich, durch kopieren des ersten Tabellenblattes, auch den VBA-Code mitkopiert. Das funktioniert zwar, aber bei Änderungen am Code, müsste dieser in jeder Tabelle angepasst werden. Da dies bei vielen Tabellenblättern umständlich ist, gibt es hier eine kleine “Optimierung” des VBA-Codes.

Ich erzeuge zuerst ein Modul,
excel-kopf_301
dann kopiere ich den vorhandenen VBA-Code der Tabellen dort hinein und ändere „Private Sub ..“ in „Public Sub…“.

Public Sub dynkopf()
  With ActiveSheet.PageSetup
        .LeftHeader = "&""ARIAL,Fett""&24" & Range("N2") & Chr(10) & _
                      "&""ARIAL,Fett Kursiv""&12" & Range("N3") & Chr(10) & _
                      "&""ARIAL,Normal""&8" & Range("N4") & Chr(10) & Range("N5")
  End With

End Sub

excel-kopf_302
In den Tabellen ersetze ich den alten VBA-Code gegen einen Neuen, welchen nun den die Public Sub „dynkopf“ aus Modul 1 aufruft.

Private Sub Worksheet_Activate()
  Call dynkopf
End Sub

excel-kopf_303
Jedes Mal, wenn eine Tabelle geöffnet oder angewählt wird, ruft man nun die Routine „dynkopf“ auf.

Damit war mein Problem gelöst und ich konnte so für 50 Tabellen einfach die jeweilige Kopfzeile dynamisch erzeugen.
Eine Überraschung gab es dann aber doch noch, denn jetzt sollte zusätzlich über dem Logo noch ein weiterer Text angegeben werden.
Dazu mehr im nächsten (und letzten) Teil.

Excel: dynamische Kopfzeile mit VBA – Teil4/4 (Text über Logo)

$
0
0

Bisher wurde eine Kopfzeile dynamisch erzeugt, danach mehrzeilig erweitert und dann der VBA-Code angepasst. Die neue Anforderung war, dass ein Text über dem Logo angegeben werden soll. Ein einfaches Einfügen war nicht möglich, da das Logo bisher fest über die Kopfzeilenfunktion eingebunden war. Deshalb musste der Text UND das Logo via VBA-Code eingebunden werden. Na denn … auf geht’s.

Grundsätzlich bereitet das kein Problem, denn die Anweisungen sind analog zu denen in den vorherigen Beiträgen.
Einzig das Einbinden der Grafik fällt hier etwas aus dem Rahmen.
Zuerst muss im VBA der Ort des Logos angegeben werden.

ActiveSheet.PageSetup.RightHeaderPicture.Filename = "D:\Pfad\Logo.jpg"

Danach kann das Logo, mit der Angabe von „&G“, eingebunden werden.

Public Sub dynkopf()

ActiveSheet.PageSetup.RightHeaderPicture.Filename = "D:\Pfad\Logo.jpg"

  With ActiveSheet.PageSetup
        .LeftHeader = "&""ARIAL,Fett""&24" & Range("N2") & Chr(10) & _
                      "&""ARIAL,Fett Kursiv""&12" & Range("N3") & Chr(10) & _
                      "&""ARIAL,Normal""&8" & Range("N4") & Chr(10) & Range("N5")
        
        .RightHeader = "&G"
  End With

End Sub

excel-kopf_401
Aber es sollte ja noch ein Text über dem Logo angedruckt werden.
Die Info dazu befindet sich in der Zelle N6.
excel-kopf_403
Somit lautet der endgültige VBA-Code

Public Sub dynkopf()

ActiveSheet.PageSetup.RightHeaderPicture.Filename = "D:\Pfad\Logo.jpg"

  With ActiveSheet.PageSetup
        .LeftHeader = "&""ARIAL,Fett""&24" & Range("N2") & Chr(10) & _
                      "&""ARIAL,Fett Kursiv""&12" & Range("N3") & Chr(10) & _
                      "&""ARIAL,Normal""&8" & Range("N4") & Chr(10) & Range("N5")
        
        .RightHeader = "&""ARIAL,Fett""&12" & Range("N6") & Chr(10) & "&G"
  End With

End Sub

excel-kopf_402
Die gewünschten Infos werden jetzt in jedem Tabellenblatt eingetragen.
excel-kopf_403 excel-kopf_404
und nach ausführen des VBA-Codes durch drücken des “Play”-Buttons im VBA-Editor oder durch erneuten aktivieren der Tabellebblätter (umschalten der Tabellenblätter) wird das gewünschte Ergebnis erreicht.
excel-kopf_405 excel-kopf_406

UrBackup: Server Installation unter Linux (Debian) 1a/7

$
0
0

UrBackup ist ein Server/Client-gestütztes Backupsystem, was bedeutet, daß (im Gegensatz zum Backuppc) neben einem Backupserver auch ein Agent/Client installiert werden muss. Agent und Server können aber auf dem gleichen Rechner installiert werden.
UrBackup steht für Windows, Linux und einige NAS-Systeme zur Verfügung.

Die Installation:
Die Installation unter Debian ist recht einfach und wird auf der Seite von „urbackup.org“ auch sehr gut erklärt.
Der Download wird mit

wget https://hndl.urbackup.org/Server/1.4.14/debian/stable/urbackup-server_1.4.14_amd64.deb

ausgeführt.
Sollte es Probleme geben, da „wget“ das Zertifikat nicht prüfen kann, kann man den Parameter –no-check-certificate verwenden

wget --no-check-certificate https://hndl.urbackup.org/Server/1.4.14/debian/stable/urbackup-server_1.4.14_amd64.deb

danach wird UrBackup mit dpkg installiert

sudo dpkg -i urbackup-server_1.4.14_amd64.deb

Auch hier wird es eine Fehlermeldung geben, da die Abhängigkeiten nicht automatisch installiert werden.
Das wird aber mit einem einfachen

sudo apt-get install -f

nachgeholt.
Man wird während dieser Installation gefragt, wo die Backupdateien von UrBackup abgelegt werden sollen.
Man kann das Standard Verzeichnis verwenden, oder ein eigenes Verzeichnis eingeben.
urbackup_serv_l_01
Empfehlenswert wäre es auch, das Backupverzeichnis auf eine andere Partition zu legen, was aber unter Linux nicht so wichtig wäre (siehe Windows-Installation)

Jetzt erreicht man den UrBackup-Server schon über den Browser durch den Aufruf
http://:55414

Somit ist der Server bereit, um Backups ausführen zu können, muss jetzt noch ein Client installiert werden. Dieser kann auf einem anderen Rechner, oder aber auch auf den gleichen Rechner installiert werden.

Viewing all 71 articles
Browse latest View live