Quantcast
Channel: Software – Andy's Blog
Viewing all 1828 articles
Browse latest View live

Linux: Daten von fehlerhaftem Laufwerk mit rsync retten

$
0
0

Ist das Boot- bzw. System-Laufwerk eines Computers fehlerhaft, kann es schwierig werden, die Daten zu retten. In der Vergangeheit wurden in diesem Blog bereits verschiedene Mittel und Wege vorgestellt.

Diesmal basiert der Beitrag auf einem Supportfall mit einer fehlerhaften SSD auf der Windows 8.1 installiert ist. Der Computer startet mir dieser nicht einmal mehr und hängt bereits beim BIOS, besser ausgedrückt: Er zeigt noch nicht mal das Logo an. Daher wurde die SSD ausgebaut und mittels USB-Adapter an einem anderen Computer angeschlossen. Windows konnte allerdings nicht auf die Daten zugreifen bzw. konnte die Partitionen noch nicht mal einhängen. Laufwerke, respektive Partitonen nur lesend einhängen, geht nur bei unixoiden Betriebssystemen wie z.B. Linux. Daher wurde ein anderer Computer mit PartedMagic gestartet, die fehlerhafte Festplatte und eine funktionierende USB-Festplatte (als Backup-Ziel) angeschlossen und zunächst die „Backup-Platte“ eingehängt:

  • Erst mit „fdisk -l“ schauen, wie die Festplatten benannt sind.
  • Dann einen Einhängepunkt mit „mkdir /media/sdXX“ erstellen und
    schließlich das Backup-Ziel mit „mount /dev/sdXX  /media/sdXX“ einhängen.

Die Bezeichnung der fehlerhaften SSD wurde ebenfalls bereits mit „fdisk – l“ ermittelt, so konnte ebenso ein Einhängepunkt erstellt werden, aber beim Mounten soll nur lesend (read-only) Verwendung finden:

mount -ro /media/sdXX /media/sdXX

Ist das soweit geschafft und erfolgreich kann mittels rsync versucht werden, die Daten zu kopieren. Z.B.

rsync -aP /media/sdXX /media/sdXX/Backup

Bevor man versucht alles von der „C-Partition“ zu kopieren, sollte man sich zunächst auf das Wichtigste konzentrieren. In der Regel sind das Daten aus dem Benutzerprofil. Hier z.B. die Bilder:

rsync -aP /media/sdXX/Users/<username>/Pictures /media/sdXX/Backup

Quelle:

ubuntuusers – Wiki – rsync


Windows: Ist der Administrator per RDP angemeldet und von wo aus?

$
0
0

Bei einem Kunden haben wir leider die Situation, das es nur das eine Administrator-Konto gibt, dieses aber von mehreren Leuten verwendet wird (von uns, dem hauseigenen Admin des Kunden, einem freiberuflichen Entwickler der beim Kunden sitzt, einem „Verantwortlichen“ und einer Mitarbeiterin aus der Buchhaltung).

Grundsätzlich bin ich kein Freund davon, das z.B. normale Mitarbeiter bzw. Anwender per Remotedesktopverbindung auf einen Server zugreifen. In der Vergangeheit gab das (auch bei anderen Kunden) teils böse Geschichten. Dabei geht es um nichts persönliches, sondern schlicht um die Fachkompetenz. Ein Beispiel: Einen PC mal neu starten ist im Tagesbetreib nicht weiter tragisch, einen Server an dem x Benutzer arbeiten hingegen schon, von den Eigenarten mancher Anwendung ganz zu schweigen.

Zurück zum Thema: Jedenfalls kommt es des öfteren vor, das man sich gegenseitig die RDP-Sitzung klaut. Nicht schön, vor allem, wenn man gerade am Tippen ist. Die saubere Lösung wäre unterschiedliche Admin-Konten zu verwenden. Eigentlich kein Ding, aber selbst nach jahrelangen Hick-Hack möchte man das aus unbekanntem Grund nicht.

Mit folgendem Skript kann man prüfen, ob gerade auf einem angegebennen Server der Administrator verbunden oder getrennt ist und von welchem Computer aus die letzte Verbindung aufgebaut wurde:

@echo off

title Ist der Administrator verbunden?

rem Konfiguration

 set server=
 set sid=

rem Sitzungen abfragen

 echo.
 echo Verbindungsstatus:
 echo.
 query session /server:%server% | find /i "Administrator"
 echo.

echo --------------------------------------------------------------------------------

rem Clientname des Administrator-PCs abfragen

 echo.
 echo Computername, von dem aus zuletzt der Administrator angemeldet war:
 echo.
 reg query "\\%server%\HKEY_USERS\%sid%\Volatile Environment\1" /v Clientname | find /i "Clientname"
 echo.

echo --------------------------------------------------------------------------------

echo.
pause

Damit das Ganze funktioniert, muss in den Variablen des Skripts der Server und die SID des Administrators eingetragen sein, der Dienst „Remoteregistrierung“ auf dem Ziel-Server muss laufen, ferner muss man als Administrator irgendwie von dem Server authentifiziert worden sein (z.B. „net use…“). Das Ergebnis sind dann so aus:

Das Ganze ist eine quick&dirty-Lösung von mir und hat mir heute im Laufe des Tages bereits mehrfach geholfen. So konnte immer die Zeit, wo kein anderer per RDP aktiv war genutzt werden, ohne das man sich in die Quere gekommen ist.

Lenovo V510-15IKB bzw. Windows 10 bleibt hängen

$
0
0

Ein ärgerliches Problem beschäftigte einen Kunden und in Folge mich: Ein wenige Monate altes Lenovo V510-15IKB Notebook blieb immer wieder hängen. Als das Gerät das erste Mal in der Werkstatt war, trat dieses Verhalten allerdings nicht auf, selbst nach tagelangem Dauertest nicht. Da ein Hardwareproblem vermutet wurde, ging das Gerät an den Lenovo Service. Zwei Wochen später kam es zurück, außer das es auf Werkseinstellung zurückgesetzt wurde, war nichts weiter gemacht worden.

Leider zeigte sich das Verhalten immer mal wieder, leider sporadisch, so das man es nicht näher eingrenzen konnte. Letztlich brachte der Kunde das Gerät wieder her. Man kann schon fasst sagen zum Glück zeigte sich das „Hängenbleiben“ dann endlich mal während es hier „herumstand“. Interessanterweise stürzte Windows 10 nicht komplett ab, sondern „nur“ zum großen Teil. Ich nenne es mal partielles Abstürzen:

Die Maus bzw. das Touchpad reagiert noch, d.h. der Mauszeiger bewegt sich, der Bildschirmschoner ändert auch noch das Bild, aber das war’s dann auch schon. Auf Tastatureingaben oder sonstiges erfolgt keine Reaktion.

Mit dieser Beobachtung war der Gedanke naheliegend, das es mit der SSD oder ggf. irgendwelchen Energiespareinstellungen zusammenhänge könnte. Generell gibt es zu diesem Notebook einen recht umfangreichen Thread im Lenovo Forum, wo von Hängern, Abstürzen und weiteren Probleme berichtet wird, das sogar unabhängig vom Betriebssystem (betrifft z.B. auch Linux):

English Community – Lenovo Notebooks – Lenovo C, E, K, M, N and V Series Notebooks – V510-15IKB Laptop Freeze

Das verhies zunächst nichts gutes, hätte es ja auch ein generelles Problem mit dieser Geräteserie sein können. Auf Englisch allerdings nach diesem Verhalten gesucht, gab’s dann einen (hoffentlich) passenden Treffer:

Microsoft Community – Windows 10 Freezes But Mouse Still Moves

Über die Antwort von „SirMoloth“ kommt man dahinter, das es mit dem Standard-AHCI-Treiber von Microsoft zusammenhängt. Der Original-Microsoft-Support-Artikel bezieht sich zwar auf ein anderes Verhalten, aber scheinbar gibt es einen Zusammenhang:

Task Manager might show 100% disk utilization on Windows 10 devices with Message Signaled Interrupt (MSI) mode enabled

Daraus ergeben sich dann zwei Optionen: Entweder die vorgeschlagene Änderung vornehmen und das Beste hoffen (der Lesart nach hilft es nicht bei jedem) oder den passenden AHCI-Treiber für den Chipsatz bzw. Festplattencontroller installieren.

Letzteres ist i.d.R. die bessere Idee, leider stellt Lenovo keine solchen Treiber zur Verfügung. Da es sich um einen Intel-Chipsatz handelt, konnte direkt beim Hersteller der passende Treiber heruntergeladen werden:

Downloads für Intel Rapid-Storage-Technik (Intel RST)

Nach weiteren mehrtägigen Dauerlauf ist bislang kein „partielles Abstürzen“ mehr aufgetreten. Ich hoffe, es bleibt dabei.

Windows/Hyper-V: VHDX verkleinern

$
0
0

Um eine virtuelle Festplatte im Microsoft VHDX-Format zu verkleinern bedarf es ein wenig Vorbereitung und ein paar Schritte.

Vorab-Bemerkung

Die einzelnen Vorgänge können je nach Größe, Hardware und Auslastung durchaus mehrere Stunden in Anspruch nehmen. Von daher sollte ein entsprechendes Zeitfenster mit Bedacht gewählt werden. Zudem empfiehlt es sich, vorab einen Testlauf mit einer Kopie oder aus einer Datensicherung heraus durchzuführen.

Datensicherung erstellen

Bevor man zu Tate schreitet, unbedingt eine Datensicherung erstellen, für den Fall das etwas schief läuft!

Defragmentierung durchführen

Vor dem verkleinern einer Partition bzw. einer *.vhdx sollte deren Inhalt defragmentiert werden. Das geht Online mit Bordmitteln, meist ist das Ergebnis allerdings Offline besser. Eine vorangehende Defragmentierung verhindert meist die Meldung beim Verkleinern der Partition, das nicht genügend Speicherplatz zur Verfügung stände oder, am Beispiel von Macronit Disk Partition Expert, eine Meldung erscheint, das es zuviele Fragmente gibt.

Bemerkung: Mit On-/Offline ist gemeint, ob der virtuelle Computer läuft oder nicht bzw. die VHDX verwendet wird oder nicht.

Partition verkleinern

Die Partition kann Online mit Bordmitteln von Windows verkleinert werden. Wenn’s nicht klappt, weil beispielsweise (immer noch trotz Defragmentierung) gemeckert wird, das nicht genügend Speicherplatz vorhanden wäre, dann Offline mit einem entsprechenden Partitionierer (z.B. Macrorit Disk Partition Expert, MiniTool Partition Wizard, etc.) arbeiten. Unter Hyper-V kann man z.B. einen virtuellen Computer der 1. Generation mit GParted Live starten und dann die Partition verkleinern. Letzteres hat bislang immer, selbst bei widerspenstigen Partitionen, erfolgreich funktioniert und ist gegenüber den Windows-Mitteln dank Schieberegler (imho) angenehmer.

VHDX verkleinern – Schritt 1

Damit der freie zur Verfügung stehende Speicherplatz innerhalb der VHDX reduziert wird, wird dieser wie folgt verringert:

  • Im „Hyper-V Manager“ auf „Datenträger bearbeiten…“ klicken.
  • Die gewünschte VHDX auswählen.
  • „Verkleinern“ auswählen und auf der Folgeseite die neue Größe angeben.

Dieser Schritt ändert allerdings (noch) nicht die Größe der Datei auf der Festplatte! Siehe dazu Schritt 2

VHDX verkleinern – Schritt 2

Spielt die physikalische Größe, also der belegte Speicherplatz, der *.vhdx keine Rolle, kann dieser Schritt übersprungen werden. Soll allerdings die Datei real verkleinert werden, so muss eine Komprimierung durchgeführt werden.

  • Im „Hyper-V Manager“ auf „Datenträger bearbeiten…“ klicken.
  • Die gewünschte VHDX auswählen.
  • „Komprimieren“ auswählen.

Abschlussbemerkung

Die einzelnen Vorgänge lassen sich per Skript (Powershell) vornehmen, siehe dazu die entsprechende Dokumentation und die Quellen.

Quellen:

Ben Armstrong’s Virtualization Blog – Shrinking a VHDX on a Running Virtual Machine

Dixin’s Blog – Shrink Virtual Hard Disk Image (VHD and VHDX) Files

Windows/Hyper-V: Zu welchem Zeitpunkt wurde die Bearbeitung einer VHDX abgeschlossen?

$
0
0

Führt man Arbeiten an einer VHDX durch, kann dies sowohl per GUI oder per Powershell geschehen. Bei letzterem lässt sich mittels weitere Befehle bzw. als komplettes Skript Startzeitpunkt und Abschluss ermitteln. Hat man allerdings per GUI einen Vorgang zum Bearbeiten einer VHDX gestartet, so ist dieser irgendwann abgeschlossen, ohne das man genau weiß wann das war.

Den Startzeitpunkt wenn man über die GUI (gemeint ist der Hyper-V Manager) arbeitet kann man manuell ohne Schwierigkeiten erfassen. Allerdings klappt das nicht mit dem Abschlusszeitpunkt, außer man starrt die gesamte Zeit über auf die Anzeige (und die Uhr natürlich;-))

Mit Hilfe eines kleines AutoIt-Skripts kann man sich Anzeigen lassen, wann der Vorgang abgeschlossen wurde. Als Basis dient dafür das Vorhandensein dies Fenster mit dem Titel „Virtueller Datenträger wird bearbeitet…“, welches nur vorhanden ist, während eine direkte Bearbeitung einer VHDX stattfindet:

Das Skript in seiner simplesten Form sieht dann z.B. so aus:

; Schleife

While 1

 ; Prüfen, ob das Fenster (noch) existiert

  If Not WinExists("Virtueller Datenträger wird bearbeitet...") Then
   MsgBox(0, "", "Abgeschlossen: " & @MDAY & "." & @MON & "." & @YEAR & " - " & @HOUR & ":" & @MIN)
   ExitLoop
  EndIf

 ; Pause
  Sleep(1000)

WEnd

Nachdem das zuvor genannte Fenster verschwunden ist, erscheint eine schmucklose MessageBox mit dem Zeitpunkt des Abschlusses:

Man könnte das nun weiter Stricken, in dem bestimmte Befehle, Aufgaben etc. nach Abschluss des Vorgangs durchgeführt werden.

Windows/Hyper-V: Virtuelle Computer mit Bvckup 2 in knappen Zeitfenstern umziehen

$
0
0

Verwendet man stand-alone Hyper-V Server und steht kein shared storage, shared nothing etc. für das Verschieben von virtuellen Computern zur Verfügung, kann man schnell und elegant mit Bvckup 2 diese umziehen.

Dieser Beitrag basiert auf zwei Windows Server 2012 R2 Standard.

Vorbereitung

Bvckup 2 auf dem Quell-Server installieren und den oder die Jobs anlegen. Ggf. muss auf dem Ziel-Server eine Freigabe des Speicherorts erstellt werden.

Da nur die Konfiguration (*.xml) und die virtuellen Festplatten (*.vhdx) der virtuellen Computer kopiert werden sollen, sollte man folgende Dateien auschließen:

<ID>.bin
<ID>.vsv

Diese Dateien existieren nur während der virtuelle Computer ausgeführt wird.

Zusätzlich die Archivierung von gelöschten Dateien deaktivieren:

Da es keine Datensicherung sein soll, dazu noch VSS deaktivieren:

Die Daten können im laufenden Betrieb ohne Probleme kopiert werden.

Erst-Abgleich

Den oder die Job(s) starten und bis zum Ende laufen lassen. Dies kommt einem vollständigen kopieren gleich, daher die Belastung der Netzwerkverbindung beachten. Idealerweise steht dafür eine eigenen Netzwerkkarte zur Verfügung, alternativ ein Zeitfenster wählen, in dem am wenigstens los ist.

Finaler Abgleich

Die betreffenden virtuellen Computer herunterfahren und anschließend nochmals die Bvckup 2-Job(s) laufen lassen. Im Gegensatz zum Erst-Abgleich werden nur die Änderungen übertragen. Das Programm macht dies auf Block-Ebene, so muss z.B. nicht die gesamte VHDX (neu) kopiert werden, sondern es werden nur die Änderungen innerhalb der virtuellen Festplatten synchronisiert. Dies geht deutlich schneller, als alles nochmal zu kopieren, in Folge wird viel Zeit gespart.

Virtuelle Computer importieren

Nachdem das Kopieren mit Bvckup 2 abgeschlossen ist, müssen die virtuellen Computer auf dem Ziel-Server noch importiert werden:

  • Im „Hyper-V Manager“ auf „Virtuellen Computer importieren..“ anklicken.
  • Den Ordner des jeweiligen virtuellen Computers auswählen.
  • Die ID kann beibehalten werden, ggf. muss der virtuelle Switch angepasst werden.
  • Nachdem der Import-Vorgang abgeschlossen ist kann der jeweilige virtuelle Computer gestartet werden.

Der Erfahrung nach bleibt in der Regel die Windows-Aktivierung erhalten, lediglich TeamViewer erhält eine neue ID.

Warum nicht Rsync?

Nichts gegen Rsync, aber im Vergleich zu Bvckup 2 arbeitet dieses: Rsync speichert die Prüfsummen für den Abgleich nicht, sondern erstellt diese bei jedem Durchlauf neu. Dies benötigt Zeit und ist gerade bei großen Dateien wie virtuellen Festplatten eher ungünstig. Ferner wird Rsync auf beiden Seiten benötigt. Als weiterer Punkt ist die Performance unter Windows eher mangelhaft.

Bvckup 2: Destination file timestamps have changed since the last run

$
0
0

Bei der täglichen Sicherung eines virtuellen Computers unter Hyper-V mit Bvckup 2 wurde die virtuelle Datenfestplatte immer vollständig und nicht wie vorgesehen das Delta (die Änderungen innerhalb der Datei) kopiert.

Im Log stand dazu folgendes:

2018.06.07 03:30:25.489 (UTC+1) 2 3 Destination file timestamps have changed since the last run
2018.06.07 03:30:25.489 (UTC+1) 3 4 Was: created 2016.04.20 10:34:58.204, modified 2018.06.06 03:30:21.933
2018.06.07 03:30:25.489 (UTC+1) 3 4 Now: created 2016.04.20 10:34:58.204, modified 2018.06.06 05:43:28.891
2018.06.07 03:30:25.489 (UTC+1) 2 3 Resetting delta state...
2018.06.07 05:38:32.315 (UTC+1) 3 3 Completed in 2 h 8 min, copied in full
2018.06.07 05:38:32.315 (UTC+1) 3 4 118.12 MBps | 271.70 reading, 338.85 hashing, 171.31 writing

Ein Blick in den Explorer zeigte ebenfalls, das der Zeitstempel sich geändert hatte. Unklar war bzw. ist, warum dies so ist, denn mit der System-VHDX des gleichen virtuellen Computers geschah dies nicht.

Auf Nachfrage bei Pipemetrics, den Machern von Bvckup 2, kam der Hinweis, das wohl irgendein Prozess auf die Datei zugreift und sich folglich der Zeitstempel ändert. Man könne dies mit dem Process Monitor bei entsprechend konfigurierten Filtern eingrenzen.

Im Process Monitor wurden daraufhin zwei Filter gesetzt:

Include - Path - contains - <Pfad und Dateiname zur gesicherten VHDX>
Exclude - Process Name - contains - Bvckup2.exe

Ersteres um nur die Zugriffe auf die gesicherte VHDX anzuzeigen und letzteres um die gewünschten Zugriffe durch Bvckup 2 auszufiltern. So sollten nur die unerwünschten Zugriffe und ggf. Aufrufe durch den Windows Explorer übrig bleiben.

Zwischenzeitlich viel beim Durchschauen des Hyper-V auf, das bei einem ausgeschaltetem virtuellen Computer die betreffende gesicherte Daten-VHDX verbunden war. Hintergrund dieses Umstands war ein Test mit den gesicherten Daten. Allerdings war dieser bereits mehrere Tage her, inzwischen hätte nach einen erneuten vollem Kopieren nur noch das Delta abgeglichen werden sollen.

Jedenfalls wurde die gesicherte VHDX von diesem ausgeschaltetem virtuellen Computer getrennt. Anschließend wurden mittlerweile mehrere Durchgänge mit Bvckup 2 durchlaufen, ohne das es nochmal zu einer ungewollten Veränderung des Zeitstempels bzw. ungewollten Zugriffs gekommen ist.

Soweit liegt der Gedanke nahe, das irgendwie über VSS und Hyper-V dieser Zugriff stattgefunden hat. Nachvollziehen konnten wir das leider nicht (mehr). Auf unserem Testserver mit gleicher Hyper-V Version konnten wir dieses ebenfalls nicht reproduzieren. Möglicherweise hing irgendwas im Hintergrund, was man so nicht ohne weiteres feststellen oder sehen kann.

Plan B (der Vollständigkeit halber)

Pipemetrics teilte zudem mit, das man, was die Zeitstempel betrifft, eine gewisse „Unschärfe“ einstellen kann:

If you are *confident* that the backup copy stays the same between the runs, you *can* suppress the delta state reset. This is done as follows:

  • 1. Right-click on the job in question, select “Open Folder” > “Configuration and Logging”
  • 2. Use Notepad to create there override.ini file and put the following line in it:
    conf.copying.ultra.delta.weak_dst_times 1
  • 3. Save the ini, exit Notepad, restart the program. If it’s running in service mode, restart the bvckup2 service.

Spaß mit Windows 10 und G Data

$
0
0

Es gibt schon kuriose Dinge mit Windows 10: So merkte G Data nach dem Upgrade von 1709 auf 1803 an, das die Lizenz bereits auf einem anderem Computer verwendet wird:

Die Kundin hat allerdings nur eine G Data-Lizenz die auch nur auf diesem einem Notebook installiert ist.

Auch „witzig“ ist das Windows Defender Security Center (fka Windows-Sicherheitscenter), dessen Aufgabe es sein sollte, auf potentielle Schwierigkeiten z.B. mit dem Virenschutz hinzuweisen. Dieses sah sich nicht dazu veranlasst zu meckern, das der Virenschutz deaktiviert ist:

Soweit sind diese beide Meldungen nicht weiter dramatisch, aber man wird doch etwas nachdenklich.


Firefox: Google in einen Container sperren

$
0
0

Ein Fork von Mozilla’s Facebook-Container-Erweiterung macht es möglich Google und weitere zugehörige Seiten wie z.B. YouTube in einen eigenen Container zu sperren.

Das Browser Addon Google Container von Perflyst macht es möglich. Ist dieses installiert und man öffnet beispielsweise die Google- oder YouTube-Startseite, so wird die Seite in einem eigenen Container geladen. Zu erkennen ist das an der roten Markierung des entsprechenden Tabs:

Befindet man sich auf einer Google-Seite, können Links ebenfalls in einem neuen „Google-Tab“ mittels Rechtsklick geöffnet werden:

Das Ganze funktioniert dann auch wenn man das Suchfeld verwendet, die Ergebnisse werden automatisch in einem entsprechenden Tab bzw. Container geöffnet.

Auf diese Weise kann man dem Tracking ein Stück weit(er) entgehen. Bei mir verhält es sich so, das ich im Regelfall kaum Google-Dienste nutze. Wenn dann doch mal die Suche oder YouTube aufgemacht wird, dann ab jetzt denk der Erweiterung automatisch im entsprechenden Container, so muss man nicht zwingend immer an ein privates Fenster denken.

Bvckup 2: Versionierung mittels mklink, net use oder mehrere Jobs

$
0
0

Bvckup 2 bringt von sich aus leider keine Möglichkeit mit, mehrere Versionen einer Datensicherung vorzuhalten.

Eine recht einfache Variante kann darin bestehen, mehrere Jobs anzulegen, die zu jeweils anderen Zielen verweisen. So auf die Art „Backup to“:

\Ziel\v1\
\Ziel\v2\
..

Statt Versionsnummern können z.B. Tage, Wochen, Monate, etc. verwendet werden. Es geht aber auch anders, wie die nachfolgenden Zeilen zeigen.

Jede Variante hat ihre Vor- und Nachteile: Bei „mklink“ und „net use“ ist leider kein delta copying möglich, da das Ziel jedes Mal neu gescannt werden muss. Das bedeutet, das geänderte Dateien als Ganzes kopiert werden und nicht nur die Änderungen innerhalb der betreffenden Dateien. Dies dauert in der Regel länger und kann bei langsamen Netzwerkverbindungen zum Problem werden. Abhilfe schafft da die Verwendung von mehreren Backup-Jobs mit jeweils eigenem Ziel, dazu am Ende mehr, aber zunächst der Reihe nach.

Die nachfolgenden Skripte liegen unter „C:\Backup“ und müssen den eigenen Bedürfnissen angepasst werden. Ferner muss bei der Verwendung von „mklink“ und „net use“ im Backup-Job unter „detecting changes“ „Re-scan destination on every run“ aktiviert sein:

Die Skripte werden dann im jeweiligen Job unter „More options – External commands & alerts“ eingebunden:

mklink (Verknüpfung)

Möchte man nur einen Job verwenden, so kann über ein „Pre-backup“-Skript das Ziel sozusagen umgebogen werden. Der Trick besteht darin, einen Link (aka Verknüpfung oder symbolische/n Verknüpfung/Link) zu verwenden. Verschiedene Beispiele finden sich im Bvckup 2 Support Forum:

Dynamically adjusting backup destination

Das Ziel muss dabei nicht zwangsläuffig lokal sein, der Link kann auch auf ein Ziel im Netzwerk, z.B. ein NAS, verweisen. Dann sollte allerdings der UNC-Pfad verwendet und die Anmeldung sichergestellt werden:

rem Anmeldung gegebenueber dem Ziel im Netzwerk

 net use \\<IP oder Hostname>\<Freigabe> <Kennwort> /user:<Benutzername> /persistent:no

rem Verknuepfung erstellen

 mklink C:\Backup\Current \\<IP oder Hostname>\<Freigabe>\<Version

Als „Post-backup“-Skript kann die Verknüpfung entfernt und die Anmeldung wieder aufgehoben werden:

rem Verknuepfung entfernen

 del C:\Backup\Current

rem Anmeldung aufheben

 net use \\<IP oder Hostname>\<Freigabe> /d

Idealerweise ist das Backup-Ziel nur während der Datensicherung erreichbar, um außerhalb des Sicherungszeitfensters nicht anfällig für z.B. CryptoTrojaner (aka Erpressungs- oder Verschlüsselungstrojaner) zu sein, daher die An-/Abmeldung.

Anbei ein Beispiel Pre- und Post-backup-Skript mit Versionsnummern:

Pre-backup.cmd:

@echo off

rem Ins Arbeitsverzeichnis wechseln

 cd C:\Backup

rem Konfiguration

 set Destination=\\<IP oder Hostname>\<Freigabe>
 set DestinationUser=<Benutzername>
 set DestinationPassword=<Kennwort>

 set NumberOfVersionsToKeep=3

rem Gegenueber dem Server oder NAS anmelden

 net use "%Destination%" "%DestinationPassword%" /user:"%DestinationUser%" /persistent:no

rem Version.txt erstellen, falls diese nicht existiert

 if not exist Version.txt echo %NumberOfversionsToKeep% > Version.txt

rem Aktuelle Version einlesen, hochzaehlen und in "Version.txt" schreiben

 set /p Version=< Version.txt set /A Version=Version %% NumberOfVersionsToKeep + 1 echo %Version% > Version.txt

rem Ziel-Verzeichnis erstellen, falls es nicht existiert

 if not exist "%Destination%\%Version%" mkdir "%Destination%\%Version%"

rem Symbolische Verknuepfung vom lokalen System zum Server oder NAS erstellen

 mklink /d "C:\Backup\Current" "%Destination%\%Version%"
Post-backup.cmd:

@echo off

rem Symbolische Verknuepfung entfernen

 rmdir C:\Backup\Current /q

rem Anmeldung gegenueber dem Server oder NAS entfernen

 net use "%Destination%" /d

net use (Netzlaufwerk)

Mittels „net use“ kann man nicht nur einfach zu einer Freigabe, sondern auch direkt zu einem Ordner innerhalb einer Freigabe ein Netzlaufwerk einrichten. Diesen Umstand kann man nutzen, mehrere Versionen zu sichern. Das dazugehörige „Pre-backup“-Skript ist dabei dem von „mklink“ sehr ähnlich:

Pre-backup.cmd:

@echo off

rem Ins Arbeitsverzeichnis wechseln

 cd C:\Backup

rem Konfiguration

 set Destination=\\<IP oder Hostname>\<Freigabe>
 set DestinationUser=<Benutzername>
 set DestinationPassword=<Kennwort>

 set NumberOfVersionsToKeep=3

rem Version.txt erstellen, falls diese nicht existiert

 if not exist Version.txt echo %NumberOfversionsToKeep% > Version.txt

rem Aktuelle Version einlesen, hochzaehlen und in "Version.txt" schreiben

 set /p Version=< Version.txt set /A Version=Version %% NumberOfVersionsToKeep + 1 echo %Version% > Version.txt

rem Ziel-Verzeichnis erstellen, falls es nicht existiert

 if not exist "%Destination%\%Version%" mkdir "%Destination%\%Version%"

rem Netzlaufwerk verbinden

 net use V: "%Destination%\%Version%" "%DestinationPassword%" /user:"%DestinationUser%" /persistent:no
Post-backup.cmd:

@echo off

rem Netzlaufwerk trennen

 net use V: /d

Mehrere Jobs mit Versionierung, automatischer Steuerung und delta copying

Damit man dennoch den Vorteil des delta copying nutzen kann, muss man zwangsläuffig mit mehreren Jobs und einem Skript arbeiten. Ausführen (lassen) muss man dabei nur einen Job, der die Anderen wiederum steuert. Das klingt nun komplizierter als es eigentlich ist. Lediglich die Ersteinrichtung und Erstbefüllung der Ziele benötigt mehr Zeit, danach geht es fix.

Folgende Ordnerstruktur wird benötigt:

C:\Backup
C:\Backup\VersionJobDst
C:\Backup\VersionJobSrc

Die Ordner „VersionJobDst“ und „VersionJobSrv“ dienen nur als Fake-Quelle und -Ziel für den Steuerungs-Job, da jeder Job zwingend „Backup from“ und „Backup to“ benötigt.

Als nächstes wird das „Pre-backup“-Skript benötigt, das die Versionierung und Job-Steuerung übernimmt:

ExternalVersion.cmd:

@echo off

rem Ins Arbeitsverzeichnis wechseln

 cd C:\Backup

rem Konfiguration

 set NumberOfVersionsToKeep=3

rem "Version.txt" erstellen, falls diese nicht existiert

 if not exist Version.txt echo %NumberOfversionsToKeep% > Version.txt

rem Aktuelle Version einlesen, hochzaehlen und in "Version.txt" schreiben

 set /p Version=< Version.txt set /A Version=Version %% NumberOfVersionsToKeep + 1 echo %Version% > Version.txt

rem Bvckup 2-Job der entsprechenden Version aktivieren und starten
rem WICHTIG: Zuvor unter "Options - Preferences - Backup Scheduling" "Enable concurrent backups" aktivieren!

 "C:\Program Files\Bvckup 2\bvckup2.exe" --command enable "%Version%"
 "C:\Program Files\Bvckup 2\bvckup2.exe" --command start "%Version%"

rem Den Status von Bvckup 2 in Schleife pruefen, ist der Job im Leerlauf, diesen (wieder) deaktivieren

 rem Schleife, um den Status zu pruefen
 rem Wenn der Status "idle" (entspricht Rueckgabewert "102") ist, dann die Schleife verlassen
  :loop
  timeout /t 1
  cmd /c "C:\Program Files\Bvckup 2\bvckup2.exe" --command status %Version%
  if not %errorlevel%==102 goto loop

 rem Backup-Job deaktivieren

  "C:\Program Files\Bvckup 2\bvckup2.exe" --command disable %Version%

Wie in den Kommentaren des Skripts zu lesen ist, ist es relevant, gleichzeitige Backups zuzulassen, da sonst immer nur ein Job laufen kann:

Unter "Options - Preferences - Backup Scheduling" "Enable concurrent backups" aktivieren.

Für diese Variante müssen allerdings zwei Jobs gleichzeitig laufen können (1x Steuerungs-Job, 1x der eigentliche Backup-Job). Damit man nicht mal aus versehen einen „Versions-Job“ startet, werden Diese nach ihrer Ausführung deaktiviert. Der jeweilige Job wird automatisch zur Sicherung hin aktiviert und ausgeführt.

Nun erstellt man den „Steuerungs-Job“, gibt als Quelle und Ziel die zuvor erstellten Ordner an und definiert das obige Skript als „Pre-backup-command“. Dieser Job kann z.B. über den integrierten Zeitplanungsdienst zu bestimmten Zeiten ausgeführt werden.

Als nächtes legt man den ersten „Versions-Job“ an. In diesem Beispiel wird als Name (Description) schlicht die jeweilige Versionsnummer verwendet. Die restlichen Einstellungen können je nach Anspruch auf den Vorgaben belassen werden:

Damit man nicht jeden einzelnen „Versions-Job“ händisch anlegen muss, reicht es aus, zunächst Einen sozusagen als Vorlage zu konfigurieren und Diesen dann zu Klonen („Rechtsklick – Clone…“). Dann nur noch die „Description“ und bei „Backup to“ ganz hinten die Versionsnummer ändern und fertig bzw. weiter zum nächsten Job.

Zu Überlegen ist, ob man gelöschte Elemente noch eine zeitlang aufbewahren möchte oder ob diese gleich gelöscht werden sollen. Per Vorgabe werden Diese zwei Wochen lang archiviert. Da man allerdings hier mehrere Versionen verwendet, könnte man auf diese Archivierung verzichten.

Am Ende sieht es in Bvckup 2 in etwa so aus:

Wie man im vorletzten Screenshot sehen kann, wird in diesem Beispiel auf eine FRITZ!BOX gesichert. Da Diese bis jetzt (gemeint ist pre FRITZ!OS 7.x) NTFS eher recht schlecht unterstützt, WLAN als weiterer Flaschenhals ebenfalls dazukommen kann und generell die NAS-Performance dieses Routers gemächlich ist, kann dank Bvckup 2 und dessen delta copying recht schnell die Nutzdaten gesichert werden. Für die Erstbefüllung oder Erstbestückung der Backup-Ziele sollte allerdings je nach Datenmenge entsprechend Zeit und nach Möglichkeit auf eine verkabelte Netzwerkverbindung zurückgegriffen werden.

Troubleshooting:

Beim Test stolperte man über folgendes Problem:

Bvckup 2: Destination file timestamps have changed since the last run

Abhilfe schafft bislang nur der dort genannte „Plan B“.

Outlook: Termin- oder Besprechungseinladungen werden nicht angezeigt

$
0
0

Bei einem Kunden (natürlich bei der Chefin, Murphy lässt grüßen) trat das Problem auf, das Termineinladungen im Outlook nicht angezeigt wurden, alle anderen Mails waren hingegen wie gewohnt zu sehen.

Das Ganze betraf ein gemeinsam genutztes Postfach. Bestätigte einer der Mitarbeiter den Termin, so wurde dieser im Kalender eingetragen oder war bei allen sichtbar. Im Webmail der Chefin war die Termineinladungsmail zu sehen. Somit war das „Problem“ auf Outlook eingegrenzt.

Abhilfe schaffte ein kurzes beherztes zurücksetzen der Ansicht.

Windows: dism oder sfc meldet Fehler mit CNBJ2530.DPB

$
0
0

Nach dem Überspielen einer Windows 8.1-Installation von einer defekten SSD auf eine Neue meldete sowohl dism als auch sfc bei der Prüfung des System eine fehlerhafte Datei „CNBJ2530.DPB“. Der Rest der Prüfungen und der sonstige Betrieb des Systems waren in Ordnung.

Sucht man nach diesem Fehlerbild erhält man einige Treffer, unbekannt oder selten ist es also nicht. Ein Ersetzen der Datei mit einer Kopie von einem anderen PC, mehrere Druchläufe von dism oder sfc helfen leider nicht.

Sowohl über BleepingComputer als auch über SysNative (vmtl. der eigentliche Ursprung) stolpert man über das Tool SFCFix:

[Win8/8.1] GUIDE: CNBJ2530.DPB and prncacla.inf Corruptions

CNBJ2530 Error – Cannot Fix with DISM or SFC

Einen Versuch, damit den Fehler zu beheben ist es auf jeden Fall wert. Im konkreten Fall half es leider nicht, obwohl es Erfolg vermeldete.

Windows: ext2- oder ext3-Partitionen erstellen und formatieren

$
0
0

Wie man unter Windows auf Linux-typische ext2- oder ext3-Dateisysteme zugreifen kann kann hatte ich bereits in der Vergangenheit beschrieben bzw. erwähnt:

Windows: Zugriff auf Linux-Partitionen

Linux-Dateisystem unter Windows einbinden

Möchte man nun solche Partitionen unter Windows erzeugen, benötigt man ein anderes Werkzeug.

Dieses Vorhaben gelingt z.B. mit MiniTool Partition Wizard, die Free Edition reicht dafür aus:

MiniTool Partition Wizard Free Edition

Dieses gibt es auch portable:

MiniTool Portable Partition Magic

Bei Techovity wird darüber hinaus neben MiniTools noch der EasyUs Partition Master erwähnt:

How To Create ext2/ext3 based Linux partition from Windows

Im aktuellen Testfall klappte alles mit MiniTools-Lösung schnell und einfach. Initiiert wurde das Ganze durch einen Versuch, die Performance von FRITZ!NAS etwas zu verbessern (NTFS wird eher schlecht unterstützt bis FRITZ!OS 6.x, daher sollte es ext2 sein):

Offiziell wird bei AVM kein ext2 oder höher erwähnt, funktionieren tut es dennoch, wie dieser Screenshot einer FRITZ!BOX 7490 zeigt:

Zugriff auf Server oder eingehendes VPN mit DS-Lite-Anschlüssen

$
0
0

Wer z.B. bei einem günstigen DSL-Anbieter oder meist bei den Kabel-Anbietern (um diese geht es nachfolgend) mit einem DS-Lite-Anschluss bedient wird, hat zwar in der Regel beim durchschnittlichen Surfen keine Probleme, bekommt aber beim Betrieb eigener öffentlich zugänglicher Server oder wenn eingehendes VPN verwendet werden soll Schwierigkeiten, da zwar ein IPv6-Subnetz zur Verfügung steht oder keine öffentlich zugängliche IPv4-Adresse.

Mal abgesehen von den Gegebenheiten des Kabelanschlusses, da es ein shared medium ist (je mehr dran hängen, desto bescheidener wird’s) und meist die Upload-Rate eher mässig ausfällt, macht einem das Fehlen einer öffentlichen IPv4-Adresse das Leben schwer, da IPv6 nicht unbedingt überall funktioniert.

Bei (Business-)DSL und Standleitungen sieht die Welt in der Regel anders aus. Je nach Region kann die Lage allerdings eine ganz andere sein wie Gespräche mit Kollegen neulich auf einer Schulung zeigten. Mitunter ist DSL keine Lösung, da nicht verfügbar oder grottenschlecht, so das dann eigentlich nur Kabel übrig bleibt (teuere Standleitungen, sofern sie überhaupt angeboten oder gebaut werden und SkyDSL lassen wir mal außen vor). Da es ja nach Anbieter oder sogar mit dem gleichen Anbieter und unterschiedlichen Ansprechpartner durchaus kuriose Geschichten geben kann, kommt erschwerend hinzu.

Eine öffentliche IPv4-Adresse gibt es im Regelfall nur mit Geschäftskundentarif, sofern verfügbar. Ein Gewerbenachweis kann dafür nötig sein, so mancher Kollege berichtete dabei, das mal danach gefragt wird, mal nicht, also irgendwie nicht einheitlich. Richtig witzig wurde dieses Thema bereits bei freien Berufen, da dort i.d.R. kein Gewerbe angemeldet ist. Ob der Anbieter das dann akzeptiert ist wiederum so eine (weitere) Sache.

Lange Vorrede. Jetzt hat es uns dieses Thema erwischt bei einer Kundin (freier Beruf) und nur ein Vodafone- (vormals Kabel Deutschland) Anschluss vorhanden. Es soll ein VPN verwendet werden, die Daten bleiben im Haus, also eingehend. Vorhanden ist eine AVM FRITZ!BOX 6490 Cable vom Anbieter. Der Anruf bei der Hotline war einigermaßen ernüchternd: Ja, Business-Tarif mit IPv4 wäre möglich, aber erst nach Ablauf der restlichen Vertragslaufzeit (ca. ein Jahr) und andere aktuell genutztes Tarif-Vorteile (TV/Handy/…-Komplettpaket) würden verloren gehen. Man kann sagen: Doppelautsch und meiner Meinung nach nicht im Sinne des Kunden, genau genommen auch nicht im Sinne des Anbieters. So lange und mit so vielen Nachteilen konnte und wollte man nicht warten, also musste ein Plan B her.

Dieser sieht so aus, das mit von IPv4 auf IPv6 tunnelt oder wenn man so will umleitet. Das Ganze geht relativ einfach und schnell mit wenig Aufwand von statten. An dieser Stelle kommt ein wenig Linux und das Paket 6tunnel ins Spiel, mit dessen Hilfe das Vorhaben schnell und gut umgesetzt werden kann. Auf diese Weise können recht bequem TCP-Verbindungen von IPv4 auf IPv6 umgeleitet werden. UDP- oder IPsec geht (leider) nicht.

Nebenbei bemerkt: Wem das Einrichten und betreiben eines Root- oder vServer zu aufwendig ist, der kann auf Dienste wie z.B. Feste-IP.Net – Portmapper (kostenpflichtig) zurückgreifen.

Voraussetzungen

Ein Root- oder vServer mit einer öffentlichen IPv4- und IPv6-Adresse und einem beliebigen Linux oder BSD. Nachfolgend wird Debian verwendet.

Zugang zum Provider-/Kabel-Router. In diesem Fall die zuvor erwähnte FRITZ!BOX, die Daten waren der Kundin bekannt, von daher kein Problem.

Die IPv6-Adresse des Routers/der FRITZ!BOX und des dahinter liegenden OpenVPN-Servers müssen bekannt sein. Beides lässt sicht am Beispiel der FRITZ!BOX auf der Status-Seite und in der Heimnetzübersicht auslesen:

Ein OpenVPN-Server hinter dem Provider-/Kabel-Router. Das IPsec-basierte VPN der FRITZ!BOX kann aufgrund der Gegebenheiten nicht verwendet werden. Da die Kundin ein Synology-NAS einsetzt, war OpenVPN kein Problem. Alternativ kann z.B. ein Raspberry PI, pfSense, OPNsense, usw. verwendet werden. Wichtig ist, das man den OpenVPN-Server von „udp“ (Voreinstellung/Standard) auf „tcp“ umstellen kann.

Schritt 1: Root- oder vServer vorbereiten

Wer (noch) keinen solchen Server hat kann günstig z.B. bei active-servers einen Mieten oder das kostenlose DHP Minipaket von KAMP nutzen. Letztgenanntes wurde für dieses Szenario herangezogen.

Wofür man sich entscheidet ist vom persönlichen Anspruch als auch ggf. den Datenmengen abhängig. KAMP beschränkt auf 10GB mit Gigabitgeschwindigkeit pro Tag (danach wird auf 10Mbit reduziert, kann erweitert werden). Damit kann man imho schonmal was anfangen. Wichtig ist, das man sich alle paar Wochen mal am ControlCenter anmeldet, da man sonst wegen Inaktivität bzw. Nicht-Nutzung rausfliegt:

Die neuen KAMP DHP Paketpreise

KAMP – FAQ

Da nur ein wenig Netzwerkverkehr durchgeleitet wird, werden keine grossartigen Ressourcen benötigt. Von daher Reichen die eine vCPU, der 1GB RAM und die 25GB Storage dicke aus. Als Betriebssystem wird schlicht das aktuelle Debian mit den Vorgaben installiert.

Bei KAMP wird „ab Werk“ zunächst keine Verbindung zum vServer zugelassen. Dies verhindert die Firewall des DHP. Das installierte Linux lässt sich über die Konsole des DHP ControlCenter konfigurieren, alternativ kann man „ssh“ (Port 22/tcp) freischalten. Für OpenVPN wird der Port „1194/tcp“ (Nicht udp!) benötigt. Möchte man auch auf die FRITZ!BOX von extern zugreifen, so ist der entsprechende Port freizuschalten.

Hinweis: Der Port, den die FRITZ!BOX verwendet, wird einmalig dynamisch bei der Einrichtung von z.B. MyFRITZ festgelegt, dieser kann unter „Internet – Freigaben“ eingesehen bzw. geändert werden.

Schritt 2: 6tunnel installieren, konfigurieren und automatischen Start einrichten

Läuft der Root- bzw. vServer soweit, kann 6tunnel installiert werden:

apt install 6tunnel

Die Syntax des Tools ist simple:

sudo 6tunnel 1194 <Ziel-IPv6-Adresse_oder_Hostname> 1194

So würde z.B. die Weiterleitung von OpenVPN schon funktionieren. Für jeden Port muss eine eigene 6tunnel-Instanz gestartet werden. Damit das automatisch z.B. nach einem Reboot funktioniert, kann man das Ganze als Shell-Skript verpacken und mittels cron ausführen lassen:

#!/bin/sh

# Da das Skript direkt nach dem (Re)Boot ausgefuehrt wird,
# erst einen Moment warten

sleep 10s

# Ggf. vorhandene 6tunnel-Instanzen beenden

killall 6tunnel

# Pause

sleep 10s

# 6tunnel starten

# FritzBox
6tunnel 49073 <Ziel-IPv6-Adresse_oder_Hostname> 49073

# OpenVPN
6tunnel 1194 <Ziel-IPv6-Adresse_oder_Hostname> 1194

Beim Test gab es direkt nach dem Neustart erstmal Schwierigkeiten, das nicht alle Tunnel aufgebaut wurden, daher die Pause von 10 Sekunden.

Nicht vergessen: Das Skript mittels „chmod +x tunnels.sh“ ausführbar machen!

Dieses Shell-Skript muss zwingend mit root-Rechten ausgeführt werden. Daher es im crontab des root-Benutzers eintragen:

sudo crontab -e
@reboot /home/debian/tunnels.sh

Ab nun werden die Tunnel direkt nach dem Neustart, genau genommen nach der Pause, aufgebaut.

Schritt 3: Die FRITZ!BOX-Freigabe(n) einrichten

Die FRITZ!BOX-Firewall muss die Anfragen zu sich selbst bzw. zum OpenVPN-Server durchlassen. Dazu die entsprechenden Freigaben unter „Internet – Freigaben – Portfreigaben“ erstellen:

Wichtig: Nur den „Internetzugriff über IPv6“ aktivieren, andernfalls klappt es in dieser Konstellation nicht!

Bemerkung: Für die FRITZ!BOX selbst muss keine gesonderte Freigabe erstellt werden, dies geschieht z.B. bei der Einrichtung von MyFRITZ automatisch und wird an dieser Stelle auch nicht angezeigt.

Schritt 4: OpenVPN-Server einrichten

Je nachdem was man für einen OpenVPN-Server betreibt, fällt die Einrichtung unterschiedlich komplex aus. Wie bereits erwähnt kommt hier ein Synology-NAS zum Einsatz, daher ist die Einrichtung sehr einfach:

  • Über das „Paket-Zentrum“ den „VPN Server“ installieren.
  • Aus dem Hauptmenü dann „VPN Server“ starten.
  • Unter „VPN Server einrichten“ auf „OpenVPN“ klicken.

Wenn man möchte, kann man die Voreinstellungen belassen. Wichtig ist nur das Protokoll von „udp“ auf „tcp“ zu ändern:

Hinweis: Unter „Privileg“ können die VPN-Benutzer eingeschränkt werden. Es sollten nur die Benutzer das Recht haben sich per VPN einzuwählen, für die es relevant ist.

  • Abschließend auf „Konfigurationsdatei exportieren“ klicken.

Schritt 5: OpenVPN-Client installieren und Einstellungen importieren

Je nach Betriebssystem stehen verschiedene OpenVPN-Clients zur Verfügung. Für Windows z.B. das Original oder die Variante von Securepoint, für MacOS z.B. Tunnelblick, usw. Unter Windows verwende ich gerne den Client von Securepoint, da dieser durch das „versteckte“ Protokoll und die bessere farbliche Statusmeldung für den gemeinen Anwender leichter zu verstehen bzw. zu handhaben ist.

Bevor man nun die zuvor exportierte Konfigurationsdatei importiert, muss man das ZIP-Archiv entpacken und die darin enthaltene „VPNConfig.ovpn“-Datei editieren. Bei „YOUR_SERVER_IP“ muss die IPv4-Adresse des vServers eingetragen werden. Nun kann die Datei in den jeweiligen OpenVPN-Client importiert werden. Beim (ersten) Verbindungsaufbau wird man nach Benutzername und Kennwort gefragt. Es gelten die gleichen Angaben, wie wenn man z.B. ein Netzaufwerk verbindet.

(Abschluss-)Bemerkung

Die hier vorgestellte Lösung ist nicht der einzige Weg, neben 6tunnel gibt es weitere Optionen, auch liese sich mittels VPN noch was drehen. Mir erschien dieser Weg neben der Nutzung externer Portmapper-Dienste soweit als möglichst einfachster und kostengünstigster.

Quellen

Björn’s Techblog – Server hinter Unitymedia DS-Lite Anschluss betreiben

bjoerns1983/6tunnel_command.sh

wojtekka/6tunnel

ubuntu manuals – 6tunnel

askubuntu – How to set up a root cron job properly

nixCraft – Linux Execute Cron Job After System Reboot

Update 26.06.2018

Zur Info:

Feste-IP.net – Supportforum – Anleitung OpenVpn Unitymedia/DS-Lite Iphone

Neben 6tunnel soll das Ganze, gemeint das Weiterleiten von IPv4 zu IPv6, zudem mittels socat oder xinetd gehen:

serverfault – Use iptables to forward ipv6 to ipv4?

Windows 10: Hohe CPU- und RAM-Auslastung, kaum noch benutzbar

$
0
0

Konnte man früher ein Windows 2000 (Workstation), XP, 7 oder 8.x als kleinen Arbeitsgruppen- oder Quasi-Server oder für bestimmte Aufgaben relativ stressfrei im 24/7 Betrieb laufen lassen, so bereitet einem Windows 10 da weniger Freude.

Marktstart-/Anfangsschwierigkeiten der jeweiligen Systeme mal außen vor gelassen, klappt das beim „letzten Windows, das man je haben wird“ nicht so gut oder wir haben schlicht einfach kein Glück damit.

Als Fallbeispiel dient ein Wortmann Terra Nettop 3030, der hardwareseitig für 24/7 ausgelegt ist um z.B. als Kassensystem, Digital Signage oder Telefonanlage laufen zu können. Letztgenanntes ist genau der Fall in Verbindung mit 3CX. Es musste wegen einer ODBC-Anbindung Windows sein, ansonsten hätten wir (Debian-)Linux genommen. Das nur am Rande. Die Hardware taugt grundsätzlich, da sich diese mit anderem OS oder in älteren Revisionen bereits bewiesen hat.

Jedenfalls kommt es in unregelmässigen Abständen vor, dass das System quasi unbenutzbar wird. Schafft man es sich zu Verbinden oder direkt davor zu stehen und den Task-Manager zu starten, so sieht man „volle Kanne“ CPU- und RAM-Auslastung. Leider wird nicht verraten, wie dies zustande kommt. Sortiert man die Prozesse nach RAM-Auslastung und macht sich die Fleissarbeit diese zu addieren, kommt man gerade mal auf die Hälfte an Arbeitsspeicherbelegung. Das lässt dann schonmal auf einen potentiellen Memory Leak schließen. Sortiert man die Prozesse nach Auslastung, taucht ganz oben „System“ auf. Es liegt also irgendwie am Betriebssystem und/oder einem Treiber. Abhilfe schafft dann nur ein Neustart, danach ist’s wieder auf unbestimmte Zeit gut.

Recherchiert man danach, stellt man schnell fest, das dieses Verhalten, unabhängig von der Hardware, gar nicht so selten ist. Die üblichen Abhilfen wie Autostart aufräumen, ungenutzte Programme abschalten/deinstallieren, Windows-/Treiber-/BIOS-Update hatten wir schon längst durch. Windows 10-spezifisch kann man noch folgendes versuchen:

  • Hybriden Startmodus deaktivieren
  • Auslagerungsdatei beim Herunterfahren löschen
  • Energieoptionen auf Höchstleistung setzen
  • Betriebssystem für optimale Leistung anpassen

Parallel dazu kann man noch, wie hier beschrieben, versuchen herauszufinden, welcher Treiber das Problem verursacht:

Top 10 Ways to Fix High CPU/RAM/Memory Usage after Windows 10 Update (siehe „Top 3. Fix Driver Issues Manually“).

Das alles außer den letzten Punkt haben wir schon hinter uns, leider ohne Erfolg. Der Support von Wortmann konnte auch nicht helfen. Aktuell dient ein automatischer nächtlicher Neustart als workaround. Damit wir frühzeitig mitkriegen, das etwas aus dem Ruder läuft, wird via Server-Eye die CPU-Auslastung überwacht, dazu haben wir den Schwellenwert sogar herabgesetzt, da „die Kiste“ im Regelfall kaum etwas zu tun hat (Durchschnitt 7% CPU-Auslastung). CPU-Last gibt es eigentlich nur bei Updates und der Datensicherung (ca. 30%).

Seit den automatischen Neustarts ist bis jetzt, teu teu teu, nichts mehr aufgetreten. Das Ganze scheint also, zumindest bei diesem System, auch von der Laufzeit abhängig zu sein.

Weitere potentielle Abhilfe kann man evtl. hier finden:

Beebom – How to Fix High CPU/Memory Usage in Windows 10


Windows über’s Netzwerk herunterfahren oder neustarten

$
0
0

Windows lässt sich im Netzwerk aus der Ferne herunterfahren oder neustarten. Ebenso wie wenn man dies lokal machen möchte, geht das (neben der GUI) über den „shutdown“-Befehl.

In einer Domäne ist das als Administrator einfach:

shutdown /m \\<IP-oder-Hostname> /s /f /t 0

In einer Arbeitsgruppe benötigt es kleiner Voraussetzungen:

Zu allererst muss der Zugriff gestattet sein:

Windows: Zugriff auf die administrativen Freigaben in einer Arbeitsgruppe

Vor dem Absetzen des „shutdown“-Befehls muss zudem eine Anmeldung erfolgt sein, da es sonst nicht klappt. Als Skript für einen Neustart („/r“ für reset statt „/s“ für shutdown) sieht das z.B. so aus:

@echo off

net use \\<IP-oder-Hostname> <Kennwort> /user:<Benutzername> /persistent:no

shutdown /m \\<IP-oder-Hostname> /r /f /t 0

net use \\<IP-oder-Hostname> /d

Quelle:

Online Tech Tips – How to Remotely Shutdown or Restart a Windows Computer

ALF-BanCo Business im Netzwerk mit MS SQL

$
0
0

Ab Version 7.4.0 kann die Business-Ausgabe von ALF-BanCo einen MS SQL Server verwenden. Laut Support ist das die Empfehlung für den Einsatz im Netzwerk mit mehreren Benutzern. Es reicht die Express-Ausgabe des SQL-Servers aus, dieser kann mit Standardeinstellungen installiert werden. Es wird die SQL-Authentifizierung benötigt, diese entweder bei der Installation oder später über das SQL Management Studio aktivieren und den „sa“-Benutzer konfigurieren.

Laut Hersteller behebt die Nutzung des MS SQL-Servers die schlechte Performance im Netzwerk, da nun nicht mehr SQlite auf einer Netzwerkfreigabe zum Einsatz kommt (Support-Aussage: SQlite Aktualisierungsintervall 1s, MS SQL-Aktualisierungsinterval 1ms!) und verbessert das Mehrbenutzer-Erlebnis.

Wir haben eine Server-Migration bei einem Kunden zum Anlass genommen, die neueste Version zusammen mit MS SQL einzusetzen.

Umzug zu MS SQL

Die Migration gestaltet sich relativ einfach:

  • ALF-BanCo starten und sich als Administrator anmelden.
  • Unter „Datei“ auf „Umzug auf SQL-Server“ klicken und dem Assistenten als auch der PDF-Anleitung folgen.

Etwas Geduld mitbringen und den Virenscanner vorher abschalten. Beim ersten Versuch wurde zunächst eine DLL blockiert und man wunderte sich, warum es nicht weitergeht.

Aufräumen nach dem Umzug

Ist die Umstellung der Datenbank erfolgt, kann die alte Datenbank („HbDat001.alfdb7“) und die Migrationsdateien („_SQL_HbDat001.mdb“, „AdoExport.log“) entfernt werden. Zur Sicherheit sollte man diese allerdings ein paar Tage aufbewahren, falls im Nachhinein noch etwas auffällt.

Die Sache mit der Benutzerverwaltung

Damit die (eingeschränkten) Benutzer dann ebenfalls den MS SQL-Server nutzen, muss bei jedem Einzelnen die Daten geändert werden.

  • ALF-BanCo starten.
  • Den gewünschten Benutzer auswählen.
  • Auf „Daten ändern“ klicken.
  • Den Pfad und Namen zur neuen Datenbank-Datei („HbDat001.alfsql7“) angeben.

Für mich sieht das so aus, als ob in der „neuen Datenbank“-Datei der Zugangsweg zum MS SQL hinterlegt ist.

Womöglich lag bei der Frage zu den Benutzern ein Missverständnis mit dem Support vor, jedenfalls speichert ALF-BanCo die Benutzerkonten nicht in der zentralen Datenbank (egal ob Pre- oder Post-MS SQL), sondern lokal auf dem Computer.

Die Benutzerkonten (nicht die Rechteverwaltung!) liegen lokal auf jedem Computer in der Datei

C:\Users\%username%\AppData\Roaming\ALFBanCo7\UserDat7.udb

Diese Datei kann einfach zwischen den Computern kopiert werden. Man muss also nicht auf jedem Computer die Benutzer händisch anlegen oder ändern.

Wir haben bei dieser Gelegenheit mal Ordnung geschafft und eine saubere Benutzerdatenbank angelegt und dann verteilt.

Tipp: Die Optionen-Datei („BanCoUser00x.aop7“) eines jeden Benutzers ebenfalls auf einer Freigabe des Servers ablegen. Für den Fall das Benutzer den Arbeitsplatz wechseln, stehen die eigenen Einstellungen so überall zur Verfügung. Das Ganze gilt natürlich nur, wenn man nicht ohnehin Windows-seitig servergespeicherte Profile verwendet.

Tipp: Die Optionen-Datei der Benutzer z.B. mit dem Namenskürzel benennen („BanCoUser00x.aop7“ -> „BanCoUser00x_AB.aop7“). So lässt sich im Falle einer beschädigten Datei leicht ermitteln, um welche es sich handelt.

FRITZ!Box – Schwierigkeiten mit HD-Telefonie (G.722 deaktivieren)

$
0
0

Mitunter kann es vorkommen, das der bei VoIP-Verbindungen ausgehandelte Codec nicht sauber funktioniert, nicht richtig implementiert ist oder andere Überraschungen auftreten.

Familien-intern hatten wir das in Verbindung mit dem Smartphone meiner Schwägerin. Immer wenn sie anrief oder wir sie angerufen haben, gingen ein bis mehrere Versuche ins Land, bis das es mal geklappt hat.

Ein Blick in unsere FRITZ!Box 7490 unter „Telefonie – Eigene Rufnummern – Sprachübertragung“ zeigte im Verlauf, das zunächst versucht wird mit HD-Telefonie (G.722-HD, macht die FRITZ!Box per Standard) zu arbeiten, scheitert das, wird auf G.711u zurückgesprungen. Das funktioniert in diesem reproduzierbaren Szenario aber erst nach mehreren Anrufversuchen. Die Verbindung als solches kommt dabei immer zustande, aber man hört sich dann in eine oder beide Richtung(en) nicht oder nur abgehackt.

Nebenbei bemerkt, Nr. 1: Nicht wundern, das bei „Eigene Rufnummer“ eine „58“ steht, die FRITZ!Box dient hier als DECT-Basis für eine Telefonanlage.

Nebenbei bemerkt, Nr. 2: Im Protokoll der FRITZ!Box wird zu den fehlerhaften Telefonie-Versuchen überhaupt nichts erwähnt.

Lösen kann man dies, in dem man „HD-Telefonie“ (G.722-HD) in der FRITZ!Box deaktiviert. Dies geht pro Endgerät, in diesem Fall den Mobilteilen:

  • Zu „Telefonie – Telefoniegeräte – <Telefon auswählen> – Merkmale des Telefoniegerätes“ wechseln.
  • „HD-Telefonie“ auf „HD deaktiviert“ stellen.

Wenn, wie hier, die FRITZ!Box im weitesten Sinne als Teil einer Telefonanlage oder eines Telefonsystems dient, sollte zudem geprüft werden, ob man in der Anlage ggf. die Codec-Reihenfolge ändern und/oder nicht unterstützte oder problematische Codecs (z.B. GSM) entfernen bzw. deaktivieren kann.

Linux Mint 19 „Tara“ Xfce – Keine „Freigabe der Arbeitsfläche“ vorhanden

$
0
0

Beim ersten Rumspielen mit Linux Mint 19 „Tara“ in der Xfce-Ausgabe vermisste ich schnell die Möglichkeit, den Desktop (aka die Arbeitsfläche) freigeben zu können.

Nach einem Blick in die „Anwendungsverwaltung“ kam die Erkenntnis das mindestens der (gewohnte) Vino fehlt, also diesen fix nachinstalliert:

Die nächste „Ernüchterung“ lies nicht lange auf sich warten, denn die Einstellungesmöglichkeit sowohl grafisch wie auch mittels Terminal („vino-preferences“) fehlt komplett. So bleibt nur der Umweg über „dconf-editor“ und etwas mehr Handarbeit:

  • „dconf-editor“ (nach)installieren und starten.
  • Zu „org / gnome / desktop / remote-access“ wechseln und die gewünschten Einstellungen vornehmen.

Um ein VNC-Passwort verwenden zu können muss man „authentication-methods“ auf „[‚vnc‘]“ setzen und das Kennwort Base64-verschlüsselt unter „vnc-password“ hinterlegen. Letzteres kann im Terminal mit

echo "vnc-passwort" | base64

verschlüsselt und via copy & paste eingefügt werden.

Troubleshooting:

Das nächste „Ding“ war dann der Umstand, das kein Bild mehr übertragen/aktualisiert wird, sobald der Desktop z.B. durch den Bildschirmschoner gesperrt wird. Entweder es bleibt die letzte Anzeige stehen oder die Anzeige wird schwarz.

Als Schnellschuss kann man das automatische Sperren des Bildschirms bei der Aktivierung des Bildschirmschoners deaktivieren:

Eine wirkliche Lösung ist das freilich nicht. Das Ganze scheint ein bekanntes Problem in der Kombi LightDM, Light-Locker und VNC (unabhängig von Vino) zu sein.

Abhilfe soll schaffen, Light-Locker zu deaktivieren und z.B. durch Xscreensaver zu ersetzen.

Quelle:

Ask Xmodulo – How to enable and configure desktop sharing on Linux Mint Cinnamon desktop

ask ubuntu – Issues using x11vnc when xfce’s lock screen is active

Update 01.07.2018 – 21:03

Mit x11vnc das Gleiche wie mit Vino. Mit „Gnome-screensaver“ scheint das Ganze aber, rein optisch, schöner zu klappen als mit „Xscreensaver“.

Instar-Kamera Live-Bild auf FRITZ!Fon

$
0
0

Mit einer passenden WebCam oder einer Netzwerk-/IP-Kamera kann in Verbindung mit einer FRITZ!Box und einem FRITZ!Fon ein Kamera-Bild auf das Telefon übertragen werden.

Für diesen Beitrag kommt eine Kombination bestehend aus AVM FRITZ!Box 7490, FRITZ!Fon C5 und Instar IN-6012HD zum Einsatz. Die Einrichtung ist einfach und benötigt nicht viel.

Kamera vorbereiten

Für den Zugriff auf das Bild genügt der Gast-Zugriff, dessen Zugangsdaten mit unter

System - Benutzer - Betrachteraccount

in der Kamera ändern kann. Für den Zugriff auf das eigentliche Bild, muss man die richtige Adresse kennen. Am Beispiel von Instar kann man die notwendigen Angaben aus der FAQ ermitteln und mit der IP-Adresse und den Zugangsdaten zusammenbauen. Ausschlaggebend ist dabei die Seite CGI Command List (HD):

http://IP-Address:Port/tmpfs/snap.jpg?usr=admin&pwd=instar :: Snapshot (720p / 1280x720 Pixel)

http://IP-Address:Port/tmpfs/auto.jpg?usr=admin&pwd=instar :: Snapshot (352p or 176p)

Es funktionieren dem Test nach beide URLs. Da das Display des C5 nicht hochauflösend ist, genügt die geringe Bildauflösung voll und ganz:

http://<IP-Adresse-der-Kamera>:80/tmpfs/auto.jpg?usr=guest&pwd=<Kennwort>

An den Seiten wird das Bild im Hochkantformat allerdings etwas beschnitten. Auf Wunsch kann man im C5 ein automatisches Drehen einstellen.

Live-Bild einrichten

In der FRITZ!Box unter

DECT - Internetdienste - Live-Bild

auf „Neues Live-Bild hinzufügen“ klicken.

Einen Namen eingeben, die Live-Bild-URL eintragen und das Aktualisierungsintervall einstellen.

Am FRITZ!Fon kann das Kamera-Bild dann unter

Menü - Heimnetz - Live-Bild

abgerufen werden.

Tipp: „Live-Bild“ als Favorit festlegen, damit man schneller darauf zugreifen kann.

Leider geht kein Video und das Live-Bild ist nicht wirklich live, da nur alle x Sekunden eine Aktualisierung stattfindet. Ferner dauert der Aufruf einen Moment. Dennoch handelt es sich um ein nettes kleines Feature.

Quelle:

FRITZ!Box 7490 Service – Wissensdatenbank – Live-Bild von IP-Kamera für FRITZ!Fon einrichten

Viewing all 1828 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>