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

3CX: JTL-Wawi integrieren

$
0
0

Die 3CX-Telefonanlage bietet viele Möglichkeiten bekannte CRM-Systeme anzubinden. Als weiteres ist es möglich Datenbanken auf Basis von MongoDB, MySQL, MS SQL und PostgreSQL abzufragen.

Vorteil der Integration ist, das man bei einem eingehenden Gespräch gleich sieht wer anruft. Je nach Grad der Integration öffnet sich automatisch bespielsweise die Kunden-Historie im CRM. Ein weiterer Pluspunkt ist das Entfallen der Pflege mehrerer Adressdatenbanken. Wenn man den Kunden- und Lieferanten-Stamm sowieso im CRM hat, macht es wenig Sinn parallel dazu das Anlagenadressbuch zu pflegen.

Seitens 3CX wird JTL-Wawi nicht nativ unterstützt, allerdings kann direkt der zugrundeliegende MS SQL-Server angesprochen werden. Zu diesem Zweck muss der Datenbankserver für die Telefonanlage erreichbar sein, d.h. gegebenenfalls Firewall und Port Server-seitig konfigurieren.

Die grundlegende Verbindungskonfiguration stellt keine allzugroße Hürde dar. Schwieriger ist da schon die richtige Query zu ermitteln. Innerhalb der Datenbank speichert JTL-Wawi in drei unterschiedlichen Tabellen die Kunden, Lieferanten und Ansprechpartner ab. Hinzu kommen Unterschiede in der Gross-/Kleinschreibung bei der Bezeichnung der Tabellennamen sowie Spalten und dann noch Schreibfehler.

  • An der 3CX Verwaltungskonsole anmelden.
  • Zu „Einstellungen – CRM-Integration“ wechseln.
  • „Database Ms SQL“ auswählen.
  • Konfigurieren wann die Datenbank abgefragt werden soll. Möglich ist immer oder nur wenn ein Kontakt nicht im internen Anlagenadressbuch vorhanden ist.
  • Bei „Server:“ den FQDN oder die IP-Adresse des Datenbankserver eingeben.
  • Bei „Database:“ für JTL-Wawi „eazybusiness“ eintragen.
  • Bei „Username:“ und „Password:“ die Zugangsdaten eingeben. In der Voreinstellung von JTL wäre das „sa“ und „sa04jT14“.
  • Unter „Lookup SQL Statement:“ die Datenbankabfrage (Query) eintragen.

An dieser Stelle wird es dann, wie angedeutet, mitunter kniffelig.

Folgende Tabellen mit Kontaktdaten gibt es:

  • tAdresse (Kunden)
  • tansprechpartner (Ansprechpartner sowohl bei Kunden als auch Lieferanten)
  • tlieferant (Lieferanten)

Bereits an dieser Stelle fällt die unterschiedliche Namensgebung auf. Für jede dieser Tabellen sieht die jeweilige Query beispielsweise wie folgt aus:

SELECT kAdresse as contactid, cFirma as companyname, cVorname as firstname, cName as lastname, cMail as email, cTel as phonebusiness, cMobil as phonemobile, cFax as faxbusiness FROM tAdresse WHERE cTel LIKE '%[Number]%' or cMobil like '%[Number]%' or cFax LIKE '%[Number]%'
SELECT kAnsprechpartner as contactid, cAbteilung as companyname, cVorName as firstname, cName as lastname, cMail as email, cTel as phonebusiness, cMobil as phonemobile, cFax as faxbusiness FROM tansprechpartner WHERE cTel LIKE '%[Number]%' or cMobil like '%[Number]%' or cFax LIKE '%[Number]%'
SELECT kLieferant as contactid, cFirma as companyname, cVorname as firstname, cNachname as lastname, cEMail as email, cTelZentralle as phonebusiness, cTelDurchwahl as phonemobile, cFax as faxbusiness FROM tlieferant WHERE cTelZentralle LIKE '%[Number]%' or cTelDurchwahl like '%[Number]%' or cFax LIKE '%[Number]%'

Auch hier wieder Unterschiede wie „cMail“ und „cEMail“. „cTel“ wiederum gibt es nur in „tAdresse“ und „tansprechpartner“, aber nicht unter „clieferant“. Auf der anderen Seite gibt es „cTelZentralle“ (kein Schreibfehler von mir, steht wirklich so in der Datenbank) und „cTelDurchwahl“ nur unter „clieferant“.

Da mehrere Einzelabfragen in der 3CX nicht möglich sind, müssen diese drei zu einer Abfrage kombiniert werden. Möglich ist dies mit „UNION“. Schlicht bei der zweiten und dritten Abfrage ein „UNION“ voranstellen und alle drei Zeilen kopieren und in der 3CX einfügen.

SELECT kAdresse as contactid, cFirma as companyname, cVorname as firstname, cName as lastname, cMail as email, cTel as phonebusiness, cMobil as phonemobile, cFax as faxbusiness FROM tAdresse WHERE cTel LIKE '%[Number]%' or cMobil like '%[Number]%' or cFax LIKE '%[Number]%'
UNION SELECT kAnsprechpartner as contactid, cAbteilung as companyname, cVorName as firstname, cName as lastname, cMail as email, cTel as phonebusiness, cMobil as phonemobile, cFax as faxbusiness FROM tansprechpartner WHERE cTel LIKE '%[Number]%' or cMobil like '%[Number]%' or cFax LIKE '%[Number]%'
UNION SELECT kLieferant as contactid, cFirma as companyname, cVorname as firstname, cNachname as lastname, cEMail as email, cTelZentralle as phonebusiness, cTelDurchwahl as phonemobile, cFax as faxbusiness FROM tlieferant WHERE cTelZentralle LIKE '%[Number]%' or cTelDurchwahl like '%[Number]%' or cFax LIKE '%[Number]%'

Tipp: Damit man nicht alles in einer Zeile bearbeiten, tippen, etc. muss kann man beispielsweise in Notepad++ jede „SELECT“ bzw. „UNION SELECT“-Zeile einzeln editieren. Am Ende dann alle drei Zeilen markieren und in die 3CX einfügen.

Wie man sieht habe ich bei der Abfrage von „tlieferant“ der Einfachheit halber geschummelt und die Durchwahl als Mobil-Nummer übergeben. Im Regelfall stehen bei uns keine Durchwahlen im Lieferranten-Kontakt drinnen, sondern werden unter Ansprechpartner gepflegt.

Soweit die „Minimal-Abfrage“ durch die 3CX gegenüber JTL-Wawi bzw. dessen MS SQL-Server.

Woher stammt der Kontakt?

In der 3CX Verwaltungskonsole ist unter „Erweitert – Kontakte“ erkennbar, welchen Ursprung der Kontakt hat, also ob intern oder CRM:

An gleicher Stelle können Kontakte aus der Telefonanlage gelöscht werden. CRM-Kontakte werden bei der nächsten Abfrage bzw. erneutem Anruf neu angelegt.

Rufnummernformat und Anrufererkennung

Wie gut oder schlecht eine Rufnummer erkannt wird ist zum einen davon abhängig, wie viele Stellen verglichen werden. Konfigurierbar ist das in der Verwaltungsoberfläche unter „Erweitert – Kontakte – Optionen“:

Als nächstes kommt es zudem darauf an, wie die Rufnummer in der Datenbank eingetragen ist. Im einfachsten Fall hat man die Rufnummern ohne jedweden „Schnickschnack“ hinterlegt.

Weiteres:

Was letztlich im Display des Telefons, in der 3CX App oder im Web-Interface angezeigt wird, ist von mehreren Faktoren abhängig: Zu allererst wie der Kontakt im Adressbuch- (Persönlich wie auch Anlage!) bzw. im CRM hinterlegt ist, dann ob ggf. Regel- und/oder Signalisierungsgruppennamen greifen.

Erfahrungswerte und Meinung

Bis jetzt, sind ja erst ein paar Tage, läuft das soweit relativ gut. Unschön ist, das anscheinend erst ab dem zweiten bekanntem Anruf der Name angezeigt wird. Ungut finde ich persönlich hingegen, das in umgekehrter Richtung, also wenn man selbst eine Nummer wählt oder einen Namen eingibt, keine Auflösung gegenüber der Datenbank stattfindet. Der Workflow ist anscheind darauf ausgelegt, das man aus dem CRM heraus arbeitet, was soweit ja erstmal in Ordnung ist. Ist man allerdings unterwegs und sucht einen Kontakt, beispielsweise einen Ansprechpartner, und dieser ist noch nicht im Anlagenadressbuch enthalten, so zieht man sozusagen den kürzeren.

Was aktuell noch nicht funktioniert ist die Aktualisierung eines Kontakt bei Änderungen in der Datenbank. 3CX setzt dazu allem Anschein nach zwingend eine URL voraus.

Danksagung

Vielen Dank an Martin Schittig von Die Schittigs GmbH für die Unterstützung bei der Ermittlung der Datenbankabfrage.

Links:

3CX – Docs – Adminhandbuch – Konfigurieren der Microsoft Office-/CRM-/Datenbank-Integration

3CX – Integrieren Sie Ihre Telefonanlage mit Ihrem CRM-System

3CX – Docs – Microsoft SQL Server, MySQL, PostgreSQL Database Integration on the Server Side

3CX – Docs – Integrating a CRM with 3CX

w3schools – SQL – SQL UNION Operator


WAU Manager – Windows-Update wie früher handhaben

$
0
0

Ein häufiger Kritikpunkt an Windows 10 ist die Handhabe der Updates. Man hat nicht mehr wie beispeilsweise unter Windows 7 die Möglichkeit Updates einzeln zu installieren.

Eine Alternative zu den Bordmitteln kann der WAU Manager sein. Diese kleine Helferlein bietet an, die Automatik in Windows zu deaktivieren und mittels weiterer Einstellungen das Updateverhalten zu regeln. Darüber hinaus ist es möglich Updates einzeln zu installieren und mit einem eigenen Planer zeitgesteuert die Suche und Installation auszuführen.

Ich habe das Tool spasseshalber auf einem Windows Server 2016 laufen lassen, soweit man es für den Moment beurteilen kann läuft es dort ebenfalls.

Windows Server 2016: Get-WindowsUpdateLog funktioniert nicht, wenn der Defender entfernt wurde

$
0
0

Sucht man Fehler im Bezug zu den Windows Updates hilft ein Blick ins Protokoll.

In früheren Windows-Versionen war dies eine einfache Text-Datei Namens „WindowsUpdate.log“ unter „C:\Windows“. Mittlerweile geht das nicht mehr ganz so einfach. Ein Protokoll kann man durch den Powershell-Befehl „Get-WindowsUpdateLog“ erzeugen lassen.

Zumindest unter Windows Server 2016 kommt es allerdings zu einem Fehler, wenn der Defender deinstalliert wurde:

C:\Users\Administrator>powershell Get-WindowsUpdateLog
Copy-Item : Der Pfad "C:\Program Files\Windows Defender\SymSrv.dll" kann nicht gefunden werden, da er nicht vorhanden
ist.
In C:\Windows\system32\WindowsPowerShell\v1.0\Modules\WindowsUpdate\WindowsUpdateLog.psm1:56 Zeichen:5
+ Copy-Item -Path $SYMSRV_DLL_PATH -Destination $WORKDIR -Force -Er ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Program File...nder\SymSrv.dll:String) [Copy-Item], ItemNotFoundExce
ption
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.CopyItemCommand

Lösen lässt sich das, wenn man die Datei

C:\Windows\System32\WindowsPowerShell\v1.0\Modules\WindowsUpdate\WindowsUpdateLog.psm1

editiert und die Zeile 56 auskommentiert:

# Copy-Item -Path $SYMSRV_DLL_PATH -Destination $WORKDIR -Force -ErrorAction Stop

denn die dortige Variable verweisst auf den Defender, siehe Zeile 21:

$SYMSRV_DLL_PATH = "$env:ProgramFiles\Windows Defender\SymSrv.dll"

Damit man die Änderung speichern kann, muss man den Besitz an der Datei übernehmen!

VirtualBox: Größe einer VDI verringern

$
0
0

Verwendet man bei einer Virtuellen Maschine unter VirtualBox eine dynamisch wachsende VDI als virtuelle Festplatte, kommt man mitunter irgendwann in die Situation, das man diese wieder verkleinern möchte.

Als Beispiel dient die VDI eines virtualisierten Debian GNU Linux die mit einer maximalen Größe von 80 GB festgelegt war. Da in der Zwischenzeit der Speicherplatz auf dem Host-Computer allerdings relativ knapp geworden ist, sollte die VDI verkleinert werden.

Innerhalb der virtuellen Maschine wurde mittels „df -H“ überprüft, wie viel Speicherplatz tatsächlich belegt ist, das sind gerade mal gute 5 GB. So gibt es mehr als genügend Raum, um die VDI zu verkleinern.

Eine Voraussetzung für das Unternehmen ist allerdings, das der freie Speicherplatz mit Nullen gefüllt ist. Damit dies sicher der Fall ist, wurde „zerofree“ installiert und im Recovery Mode nach dem Aushängen der Partiton ausgeführt.

zerofree -v /dev/sda1

Für Windows-VMs kann man „sdelete“ verwenden.

Anschließend wurde die virtuelle Maschine heruntergefahren und in einer Eingabeaufforderung aus dem Ordner

C:\Program Files\Oracle\VirtualBox

des Windows 10-Hosts folgender Befehl ausgeführt:

vboxmanage modifymedium disk "C:\Users\%username%\VirtualBox VMs\Debian\Debian.vdi" --compact

Dieser Befehl kann auch auf VHDs angewendet werden.

Der Fortschritt sieht so aus:

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

Je nach Größe und Performance dauert es eine Weile, bis der Vorgang abgeschlossen ist.

Anschließend kann man die virtuelle Maschine wieder starten. Möchte man verhindern, das die VDI wieder so starrk anwächst kann man beispielsweise mit GParted Live die Partition verkleinern.

Links und Quellen:

VirtualBox – Manual – Chapter 8. VBoxManage – 8.22. VBoxManage modifymedium

How-To Geek – How to Shrink a VirtualBox Virtual Machine and Free Up Disk Space

WordPress: Absender-E-Mail ändern

$
0
0

Per Vorgabe versendet WordPress mit dem Absender „wordpress@“ bzw. dem Namen „WordPress“. Das kann mitunter zu Schwierigkeiten führen, wenn z.B. jemand auf diese E-Mails antwortet oder Spamfilter monieren, das es diese E-Mail-Adresse nicht gibt.

Ändern lässt sich das entweder durch Änderungen am Quellcode oder den Einsatz von Plugins. Ersteres sowie Zweiteres ist hier beschrieben:

wpbeginner – How to Change Sender Name in Outgoing WordPress Email

Neben dem dort erwähnten Plugins CB Mail Sender kann beispielsweise auch WP Mail SMTP verwendet werden. Letztgenanntes bietet mehr Möglichkeiten und ist zudem dann interessant, wenn der Webserver keinen E-Mail-Verand via PHP-Funktion zulässt.

Windows: Mit VeloRAM oder VeloFull das System beschleunigen (oder auch nicht)

$
0
0

Freud und Leid liegen oft nah beieinander, wie dieser Test zeigt. Nun erstmal hübsch der Reihe nach.

Möchte oder muss man mehr Performance aus seinem System herausholen gibt es dazu gleich mehrere Möglichkeiten. Um beispielsweise den Zugriff auf den Speicherplatz in Form von HDD oder SSD zu beschleunigen bieten sich neben RAID, entsprechende Controller mit Cache und Software-definied-Storage (SDS) Lösungen wie Storage Spaces, StarWind VirtualSAN oder DataCore

Für Bestandssystems, Windows Client-Betriebssystems oder um beispielsweise nur eine Festplatte zu tunen sind diese allerdings zu viel des guten. Abhilfe können spezialisierte Cache-Programme bieten. Der Vorteil von diesen liegt im Idealfall darin, das diese günstig sind, keine spezielle Hardware und keine komplexe Administration benötigen.

Einer dieser Lösungen bzw. gleich eine ganze Palette bietet EliteBytes an. Von Vorteil ist eine übersichtliche Lizenzierung, die gestaffelt nach zu beschleunigten Volumes, max. Speicherplatz und maximaler Cache-Größe ist. Zudem handelt es sich um Lifetime-Lizenzen und die kleinste Staffelung beinhaltet gleich zwei Geräte, also z.B. PC und Notebook oder Host und virtuelle Maschine.

Die Homepage des Anbieters ist recht „Oldschool“ gehalten, man findet sich zurecht.

Baselining

Soviel zum Vorwort und wie es sein könnte. Schreitet man zur Tat gilt es erstmal Baselining zu betreiben. Also wie schnell sind denn die Bestandslaufwerke. Hier mal die Messungen mit CrystalDiskMark von einer 1 TB HDD und einer 240 GB SSD, damit man Vergleichswerte hat:

Nebenbei erwähnt: Das Testsystem ist ein frisch installierter Windows Server 2019 Standard auf einem Supermicro-Server. Es werden die Onboard-SATA-Schnittstellen verwendet (Intel, AHCI-Modus, kein RAID).

VeloRAM

Den Einstieg in die „Velo-Welt“ macht dabei VeloRAM, eine Software zum Anlegen eines L1 Cache im RAM, der das ausgewählte Laufwerk beschleunigt. Setup und Konfiguration sind einfach: Das Programm installieren, ggf. das System neustarten, das zu beschleuningte Volume bzw. Laufwerk auswählen, angeben wie groß der Cache sein soll und schon läufts:

Dann gleich mal gemessen und das Ganze sieht so aus:

Auch innerhalb einer VM unter Hyper-V läuft’s gut:

Aber dann…

Nach dem Entfernen des Caches und/oder (ja, bei beiden) der Deinstallation von VeloRAM benötigte der Host drei Neustarts um wieder erfolgreich hochzukommen. Die ersten Beiden scheiterten mit einem Bluescreen der Marke „DRIVER POWER STATE FAILURE“. Nicht schön.

Coming up next

Ganz den Vogel ähm das System abgeschossen hat dann VeloFull, die Kombi aus VeloRAM, VeloSSD bzw. MaxVeloSSD. Nach dessen Installation startete der Server nicht mehr, es endete immer an einem BSOD (Bluescreen), dessen Hintergrund es war, das die Treibersignatur nicht überprüft werden konnte. Ignoriert man das und startete das System ohne diese Prüfung lief es zwar, aber ein Dauerzustand kann und soll das nicht sein. Bei VeloRAM kam es übrigens zu keinem Problem bei der Treibersignaturprüfung.

Jedefalls wurde VeloFull deinstalliert und danach startete der Server überhaupt nicht mehr. Diesmal lautete die Bluescreen-Fehlermeldung „INACCESSIBLE BOOT DEVICE“. Alle Reparaturversuche scheiterten, zum Glück handelte es sich nur um ein Test-System. Einen unguten Eindruck hinterlässt das Ganze allerdings schon. Schade.

Grundsätzlich glaube ich an solche Lösungen und das es auch anders laufen kann beweissen neben den Eingangs erwähnten größen Lösungen Programme wie PrimoCache von Romex. Dazu ein andermal mehr.

Windows: SMTPSend mit TLS verwenden

$
0
0

SMTPSend von DataEnter ist ein nettes kleines Tool um beispielsweise aus Skripten heraus eine E-Mail versenden zu können. Im Rahmen dieses Blogs kam es bereits in mehreren Beitragen zur Sprache.

Möchte oder muss man den E-Mail-Versand nun TLS-verschlüsselt nutzen, geht das recht einfach:

smtpsend.exe -fABSENDER -tEMPFÄNGER -hSERVER -pPORT -sBETREFF -iMail.txt -v -luBENUTZERNAME -lpKENNWORT -lSMTPS

Relevant für SMTPS sind in der Regel die Parameter „-p“ für den Port, bei SMTPS meist 465,  dann „-lSMTPS“ um verschlüsselt zu arbeiten. Ggf. wird noch der Parameter „-lCA<PEM-Datei>“ benötigt um eine CA angeben zu können.

Um sich das Ganze erstmal anzusehen empfiehlt sich der Parameter „-v“. Gleich zu Beginn der Übertragung kann man die Zertifikatsprüfung sehen. Hier ein Beispiel mit All-Inkl:

SMTPSend v3.65 (Win8 w64)
(c) copyright DataEnter GmbH 1991-2018


From: <ABSENDER>
To: <EMPFÄNGER>


MX for <Ihr-Login>.kasserver.com is <Ihr-Login>.kasserver.com [IP]
Adding Body.txt (36 Bytes) to message body...
Connection established with <Ihr-Login>.kasserver.com [IP]
TLS Cert: /C=DE/postalCode=02742/ST=Sachsen/L=Friedersdorf/street=Hauptstra\xC3\x9Fe 68/O=kasserver.com/OU=kasserver.com/OU=Authorized by United SSL/OU=PremiumSSL Wildcard/CN=*.kasserver.com
Issuer: /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Organization Validation Secure Server CA
Valid: 2018-02-12 - 2021-02-12
Status: Certificate valid and trusted (CN+CA,strong key,strong algorithm)
Key: RSA-SHA256 with 2048 bit (ECDH, P-256 with 256 bit)
Cipher: TLSv1.2, ECDHE-RSA-AES256-GCM-SHA384 with 256 bit encryption (PFS,strong cipher,strong protocol)

„Die Arbeitsdatei konnte von Word nicht erstellt werden…

$
0
0

Überprüfen Sie die TEMP-Umgebungsvariable“.

Diese Nette Fehlermeldung erschien urplötzlich auf einem relativ frisch installiertem Windows 10-PC mit Office 2019. Kurioserweise lief er bereits ein paar Wochen ohne Schwierigkeiten.

Eine Überprüfung der genannten Umgebungsvariable offenbarte soweit nichts ungewöhnliches, verwies diese doch nach

%USERPROFILE%\AppData\Local\Microsoft\Windows\INetCache

wie es laut MS und dem Vergleich zu anderen PCs sein sollte. Auch in der Registry war der Pfad richtig eingetragen. Abhilfe schaffte der Lösungsvorschlag von hier:

Windows-Info – Meldung: Die Arbeitsdatei konnte von Word nicht erstellt werden. Überprüfen Sie die…

Kurzfassung der notwendigen Schritte:

  • Word beenden.
  • Im Explorer einstellen, das alle (versteckten) Dateien und Ordner angezeigt werden.
  • Via „Systemsteuerung – Internetoptionen“ auf der Registerkarte „Allgemein“ im Abschnitt „Browserverlauf“ auf „Einstellungen“ klicken.
  • „Ordner verschieben…“ anklicken und folgenden Pfad auswählen:
    C:\Users\%username%\AppData\Local\Microsoft\Windows
  • Die Änderung bestätigen und den Benutzer abmelden, besser den Computer neustarten.

Jetzt sollte es wieder funktionieren. Interessanterweise wurde beim betroffenen Computer der Pfad dann auf

%USERPROFILE%\AppData\Local\Microsoft\Windows\Temporary Internet Files

geändert, was laut MS für Computer vor Windows 8.x gilt:

Microsoft Support – „Outlook could not create the work file“ error when you start Outlook


Word-Datei kann aus Outlook heraus nicht geöffnet werden

$
0
0

Auf einem Windows 10-Computer mit Office 2019 war es nicht möglich, Word-Dateien aus E-Mails heraus zu öffnen. Es kam dabei immer zu folgender Fehlermeldung:

Speichert man die Datei zunächst ab und versucht diese zu Öffnen kommt es zur gleichen Fehlermeldung. Rechtsklick auf die Datei und dann „Zulassen“ anhaken ist zwar ein Lösungsweg, allerdings für das Tagesgeschehen relativ aufwendig.

Bei Microsoft selbst ist zu dieser Fehlermeldung allerdings in einer anderen Windows/Office-Konstellation vermerkt, das an prüfen soll, ob die Windows-Firewall ausgeführt wird:

Microsoft Support – Word-Dokumente oder Excel-Tabellen können nicht aus einer externen Quelle in Outlook geöffnet werden.

Ein Workaround ist, die geschützte Ansicht in Word zu deaktivieren:

Tippscout.de – Geschützte Ansicht in Word und Excel deaktivieren

  • Word starten.
  • Auf „Datei – Optionen“ klicken.
  • Zu „Trust Center – Einstellungen für das Trust Center“ wechseln.
  • Bei „Geschützte Ansicht“ und die Einstellungen anpassen.

Es ist zwar nicht mein Favorit Schutzmaßnahmen zu deaktivieren, wenn es allerdings nicht anders geht, was bleibt einem da anderes übrig. Da bei diesem Kunden Panda Adaptive Defense 360 und eine Arbeitsplatzdatensicherung zum Einsatz kommen, mache ich mir relativ wenig Gedanken über die „Geschützte Ansicht“.

MDaemon: ClamAV deaktivieren

$
0
0

Der Open Source Virenscanner ClamAV ist in jeder MDaemon Messaging Server-Installation, unabhängig vom SecurityPlus Addon, enthalten und per Voreinstellung aktiv.

Wer einen leistungsfähigeren Virenschutz beispielsweise in Form einer UTM oder anderer Security-Gateways vor dem MDaemon-Server betreibt oder der Mailserver in Sachen Arbeitsspeicher etwas schwach ausgestattet ist, der kann den ClamAV deaktivieren:

  • Die MDaemon-Verwaltungskonsole starten.
  • Zu „Sicherheit – AntiVirus“ wechseln.
  • Bei „AntiVirus – Virenprüfung“ in „Module für die Virenprüfung“ den Haken entfernen bei „Nachrichten mit Hilfe des Moduls ClamAV prüfen“.


Die Änderung greift ohne Neustart sofort, an Arbeitsspeicher wird ca. 1 GB freigegeben.

Mit Diskepper, SSDkepper oder V-locity Windows und Anwendungen beschleunigen

$
0
0

Wie die zuletzt vorgestellten oder erwähnten Produkten wie Elite Byte’s Velo-Anwendungen und Romex PrimoCache bietet Condusiv ähnliches an.

Diskeeper und SSDkeeper stellen der HDD bzw. SSD ebenfalls einen L1 Cache im RAM zur Seite und steigern so den Datendurchsatz und die IOPS. Im Gegensatz zu manch anderem Produkt am Markt muss kein Wert für die Cache-Größe eingestellt werden, den die Produkte nutzen von sich aus den verfügbaren (freien) Arbeitsspeicher. Ein Minimum von 3 GB, empfohlen sind 4 GB, sowohl für physikalische sowie virtuelle Computer wird dabei angegeben.

V-locity hingegen optimiert für physikalische und virtuelle Computer die I/O-Zugriffe und nutzt ebenfalls Caching und holt so mehr Performance aus der Hardware heraus.

Die Client-Editionen liegen preislich mehr oder weniger im Schnitt zu vergleichbaren Lösungen, die Server-Editionen spielen allerdings in einer anderen Liga, wie z.B. Diskeeper Server für $524.95 USD oder V-Locity für $524.95 USD (Stand 26.02.2020, Quelle: Hersteller-Online-Shop). Im Vergleich zu neuer Hardware oder Anwendungen wie Starwind’s VirtualSAN oder den Produkten von DataCore dennoch günstiger, wobei natürlich neben den Caching und Tierung ebenfalls die Unterschiede im Funktionsumfang beachtet werden müssen.

Android: Plötzliche Zertifikatswarnung in Mail

$
0
0

Auf dem Samsung-Smartphone eines Kunden meldete plötzlich die Mail-App einen Zertifikatsfehler. Bei näherer Betrachtung stellte man fest, das nicht (mehr) das eigentliche Zertifikat verwendet wird:

Mailserver-seitig wird ein öffentliches (ordentliches) Zertifikat verwendet. Wie und woher dieses „SO WIFI HOTSPOTS“-Zertifikat nun gezogen wurde blieb unklar. Laut Kunde war er mit keinem anderen WLAN verbunden. Ebenso wurden keine neuen Apps installiert oder welche aktualisiert. Seltsamerweise betraf es nur das ActiveSync-Konto der Firma, nicht allerdings ein parallel dazu eingerichtetes IMAP-Konto von Web.de.

SO WIFI scheint indes dieses hier zu sein:

SO Connect

Der Lesart nach eine Marketing-Analyse-Geschichte. Dazu gibt es neben „freien“ WLAN (man bezahlt ja mit seinen Daten bzw. Verhalten) wohl auch Apps mit den Namen „SO WIFI“ oder „SO Connect“. Beide waren im übrigen nicht installiert. Dem Kunden sagte der Name nichts.

Liest man in der FAQ kann einem da schon mal anders werden:

"SO WIFI ermöglicht es Ihnen, Ihre Kunden in- und auswendig kennen zu lernen und bietet eine Marketing-Plattform um diese direkt zu erreichen.
Durch die Installation eines SO WIFI Hotspots an Ihrem Standort können Sie Informationen über Ihre Besucher, Kunden und Passanten sammeln. ..."

Da sich das Zertifikat irgendwie „eingeschmuggelt“ hat, könnte man SSL-Interception vermuten.

Die Verbindungen von und zum Smartphone waren indes nicht auffällig. Ein Aufruf der Webmail-Seite des Mailservers, die das gleiche Zertifikat verwendet, war völlig in Ordnung, es wurde das richtige Zertifikat verwendet.

Irgendwelche VPN-, Proxy- oder sonstwie andere Verbindungen waren nicht konfiguriert. Namensauflösung (DNS) klappte ebenso ohne Überraschungen. Selbst wenn man die Zertifikatsmeldung bestätigte und der Sync lief wurde auf dem Mailserver die richtige IP-Adresse des Smartphones angezeigt. Soweit lies sich also nicht ermitteln das die Daten irgendwie einen anderen Weg nehmen als sie sollten.

So richtig klären was da passiert konnten wir leider nicht. Es bleibt ein mulmiges Gefühl zurück, zumal die Ursache unbekannt bleibt.

Die Lösung bestand darin, das betroffene ActiveSync-Konto zu löschen und neu anzulegen.

Bvckup 2: Versionierung aktivieren

$
0
0

Das kleine, aber feine Bvckup 2 beherrscht neben der einfachen Datensicherung gleichfalls eine Versionierung. Zusammen mit der Echtzeitüberwachung lässt sich so ein eigenes Continuous Data Protection (CDP) bauen.

Einen neuen Backup-Job mit folgenden Einstellungen anlegen:

  • When to backup: When files or folders are modified, in real time
  • Copying: Copy files in full
  • Deleting: Archive backup copies (Ist per Vorgabe aktiviert, sollte zur Sicherheit allerdings kontrolliert werden.)

Die restlichen Einstellungen kann man nach dem persönlichen Anforderungen konfigurieren.

Damit die bord-eigene Versionierung genutzt werden kann, muss diese im Job aktiviert werden. Über die Oberfläche geht dies leider nicht, so das man die Konfigurationsdatei bearbeiten muss:

  • „Rechtsklick auf den Job – Open Folder – Configuration and logging“ anklicken.
  • Bvckup 2 beenden. Sofern das Tool als Dienst läuft, den Dienst beenden.
  • Nun die Datei „settings.ini“ editieren und die Option „conf.archive_modified“ auf „1“ setzen.
  • Das Programm bzw. den Dienst wieder starten.

Ab sofort wird jede Änderung an einer Datei bzw. an/in einem Ordner erfasst.

Im Ziel sieht das z.B. so aus:

Die aktuellste Version befindet sich direkt im Ziel-Ordner:

Die vorigen Versionen befinden sich im Unterordner „$Archive (Bvckup 2):

Wo Licht ist, ist auch Schatten: Leider funktioniert die Versionierung in dieser Form nicht mit dem Delta-Abgleich. Dennoch ist Bvckup 2 so z.B. für kleine bis mittlere Dateien geeignet. Zum „Mitracken“ von Änderungen von Office-Dateien reicht dies völlig aus.

Für komplexere Versionierungs-Szenarien bzw. wenn der Delta-Abgleich relevant ist, lässt sich auf diesen Beitrag zurückgreifen oder eben dieser als Basis für eigene Varianten nutzen:

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

Windows: Mit PrimoCache Windows und Anwendungen beschleunigen

$
0
0

Nach dem Test von VeloRAM und VeloFull und der Verlinkung der Condusiv-Produkte folgt nun ein Beitrag zu PrimoCache von Romex.

Wieso und weshalb ein zusätzlicher Zwischenspeicher (Cache) für SSD und/oder Festplatten-Zugriffe?

Im Computer gibt es in aller Regel keinen schnelleren Speicher als den Arbeitsspeicher (RAM). Selbst SSDs, ganz gleich ob mit SATA- oder NVMe-Schnittstelle, kommen nicht an dessen Performance heran. Da ist es naheliegend, einen Teil des Arbeitsspeichers wenn man so möchte als Puffer für Schreib- und Lesevorgänge zu benutzen. Hinzu kommt bei solchen Anwendungen wie PrimoCache das zufällige Zugriffe geordnet und in Folge schneller in Reihe gelesen bzw. geschrieben werden können.

Ein weiterer Pluspunkt ist, das sich mit dieser Software auf Bestandshardware, ohne deren Änderung, noch was an der Performance machen lässt. Teure (Neu-)Investionen sind nicht zwingend notwendig. Einzige Voraussetzung neben einem unterstützem Betriebssystem ist ausreichend freier Arbeitsspeicher. Grundsätzlich gilt: Je größer der Cache, desto höher der Performance-Gewinn.

Installation

PrimoCache steht sowohl für Windows-Clients-Betriebssysteme wie Windows 10 als auch für Windows Server zur Verfügung und kann 30 Tage bei vollem Funktionsumfang getestet werden. Die Installation geht schnell und ohne große Umschweife von statten, lediglich ein Neustart ist zwingend erforderlich.

Erst-Einrichtung

Nach dem Neustart lässt sich die Anwendung direkt über das Desktop-Symbol starten. Die Oberfläche ist klar aufgestellt und selbst ohne großes Studium des Handbuchs kommt man schnell zurecht.

Level-1 (RAM) Cache einrichten

    • Auf „Create a new Cache Task“ klicken.
    • Das zu beschleunigende Laufwerk oder Partition auswählen.
    • Im darauffolgenden Dialog kann die Cache-Größe sowie weitere Parameter eingestellt werden.
    • Nach einem Klick auf „Start“ beginnt PrimoCache sofort zu arbeiten.

Level-2 (SSD) Cache einrichten

Während der Level-1 Cache wenn man so möchte gradlinig von vorne eingerichtet wird, muss für die Verwendung des Level-2 (SSD) Caches zunächst dieser unter „Manage Level-2 Storage“ eingerichtet werden. Wichtig: Das Laufwerk bzw. die Partition muss vorhanden und mit NTFS formiertiert sein. Ein Laufwerksbuchstaben kann, muss aber nicht konfiguriert sein. Evtl. vorhandene Dateien auf dem Cache-Laufwerk werden im Laufe der Einrichtung gelöscht!

  • Auf „Create Level-2 Storage“ klicken.
  • Das Laufwerk bzw. die Partition, die den Cache beheimaten soll auswählen und auf „Format“ klicken.

Der Vollständigkeit halber: Der Level-2 Cache kann eine SSD, Festplatte, USB-Laufwerk oder SD-Karte sein. Aus Gründen der Performance sowie Betriebssicherheitsgründen sollte es allerdings eine interne SSD sein.

Sobald ein oder mehrere Level-2 Stoages angelegt wurden, können diese beim Anlegen oder Ändern von Cache Tasks angegeben werden:

Tipp: Unter „Preset Configuration“ gibt es vordefinierte Profile die man auswählen kann. Alle Einstellungen lassen sich zusätzlich manuell setzen und ex- sowie importieren.

Nebenbei bemerkt: Ein und der selbe Cache, ganz gleich ob Level-1 oder Level-2 bzw. beide, kann für mehrere Laufwerke gleichzeitg verwendet werden.

Im Betrieb

Von Vorteil ist, das man die Einstellungen im laufenden Betrieb ändern und anwenden kann. Der Cache wird zwar kurz „geflusht“, steht danach sofort wieder zur Verfügung, außer einem kurzem Performance-Einbruch passiert nichts weiter. Bestehende Laufwerke, ganz gleich ob Festplatte oder SSD können direkt beschleunigt werden, kein Neupartitionieren oder Formatieren notwendig, mit Ausnahme des „L2STORAGE“, also des SSD-basierten Zwischenspeichers, denn dessen Partition oder Laufwerk muss zwingend neu formatiert werden.

Im (unfairen) Vergleich zu beispielsweise den Storage Spaces von Microsoft besteht in dieser Hinsicht im laufenden Betrieb mehr Handlungspielraum. Apropos Storage Spaces: Diese lassen sich mit dem Einsatz von PrimoCache (weiter) beschleunigen!

Als weiteres steht eine CLI (Command Line Interface) zur skript-gesteuerten Automatisierung bzw. Überwachung zur Verfügung.

Tests

Anbei ein paar Impressionen von bisherigen (Test-)Installationen:

Hardware-Server, keine Virtualisierung, zwei Single-SSDs (kein RAID), Windows Server 2012 R2, beschleunigt werden soll nur Laufwerk C:, 4 GB Level-1 Cache, 40 GB Level-2 Cache

Vorher:

Nachher:

Hyper-V Host auf Basis von Windows Server 2016, RAID10 bestehend aus vier SSDs, 4 GB Level-1 Cache

Vorher:

Nachher:

Und so sieht’s innerhalb einer virtuellen Maschine dieses Hyper-V Hosts aus:

Vorher:

Nachher:

Leider brachen hier die zufälligen Zugriffe im Gegensatz zum Rest ein. Die Performance innerhalb einer virtuellen Maschine lässt sich durch eine Installation von PrimoCache (und ähnlicher Software) ebenfalls verbessern. Hier also das nachher Beispiel anhand der zuvor gezeigten virtuellen Maschine:

Das sieht doch schon besser aus, wenngleich nicht annähernd so gut wie direkt auf dem Host.

Und in der wahren Wirklichkeit?

Tests sind schön und gut, bleibt letztlich immer die Frage, ob die messtechnisch ermittelten Änderungen sich spürbar bemerkbar machen.

Mal mindestens ein Thunderbird der auf einem Terminalserver als RemoteApp läuft, ist nun deutlich flotter bzw. hängt nicht mehr beim Abrufen neuer Nachrichten (drei Postfächer) bzw. Updaten des Newsfeeds (25 Abos) so extrem wie vorher. Selbst die Wechsel zwischen den Ordner, ganz gleich ob Postfach oder Newsfeed, ist sichtbar zackiger.

Laut Mitarbeiter-Aussage ist zudem ecoDMS schneller. Auf weiteres Feedback warte ich derzeit noch.

Troubleshooting

Beim Versuch einen Level-1 Cache in einer Windows Server 2016-VM anzulegen kam es immer zu folgendem Fehler:

Im Ereignisprotokoll fand sich dazu dieses:

Protokollname: System
Quelle: FancyCcV
Datum: 26.02.2020 22:06:34
Ereignis-ID: 18
Aufgabenkategorie:Keine
Ebene: Fehler
Schlüsselwörter:Klassisch
Benutzer: Nicht zutreffend
Computer: wts02
Beschreibung:
Failed to create or join a cache task.

Beide Meldungen wurden an den Support weitergeleitet, dieser antwortete zügig. Kurioserweise konnte ohne jedes weitere zutun am nächsten Tag der L1 Cache angelegt werden. Funktionieren wollte er dennoch nicht (siehe „Status – Level-1 Cache: Disabled“):

Eine wichtige Info kam vom Support: NUMA wird erst ab der kommenden Version 4 unterstützt:

[2019-12-31] PrimoCache 3.2.0 and 4.0.0 alpha released!

Wobei NUMA jetzt nicht speziell bei diesem System konfiguriert ist. Seltsamerweise lief einen Tag später der Cache dann urplötzlich. Dazu sei angemerkt, das dieser Server automatisch nachts um 04:00 Uhr neustartet.

Man ist an diesem Thema noch dran.

Windows: Mehrere Laufwerke in einem Ordner oder in einer Freigabe bereitstellen

$
0
0

Eine schon recht alte Technik in Windows ermöglicht das Bereitstellen von mehreren Laufwerken in einem Ordner bzw. in einer Freigabe.

Man benötigt neben mehreren Laufwerken einen Ordner bzw. eine Freigabe, in dem bzw. der man für jedes Laufwerk einen Unterordner anlegt, z.B.

  • „C:\Share“ als als eigentlichen Ordner, der ggf. freigegeben ist bzw. wird.
  • „C:\Share\DATA01“ als Unterordner für das hinzuzufügende (weitere) Laufwerk.

Die zusätzlichen Laufwerke müssen online, initialisiert, partitioniert und formatiert sein. GPT und NTFS sind dabei die aktuellen Mittel der Wahl. MBR geht ggf. ebenfalls.

  • In der Datenträgerverwaltung wählt man das zu verbindete Laufwerk aus und klickt es mit der rechten Maustaste an.
  • „Laufwerksbuchstaben und -Pfade ändern“ auswählen.
  • Auf „Hinzufügen“ klicken.
  • „In folgenden leeren NTFS-Ordner bereitstellen“ auswählen und den zuvor erstellten Unterordner angeben.

Nach einem Klick auf „OK“ wird das Laufwerk im angegebennen Ordner bereitgestellt und kann verwendet werden. Die NTFS-Berechtigungen müssen für den erfolgreichen Zugriff ggf. angepasst werden.

Von Vorteil ist, das jedes Laufwerk nach wie vor eigenständig über einen Laufwerksbuchstaben angesprochen werden kann, es ist keine Neuformatierung o.ä. notwendig ist. Selbst Laufwerke die bereits Daten enthalten können so eingebunden werden. Eine mehrfache Bereistellug in unterschiedliche (unter-)Ordner ist ebenfalls möglich. In umgekehrter Richtung, also beim Aufheben der Bereitstellung, bleiben die Daten erhalten.

Hierbei handelt es sich um eine relativ einfache Möglichkeit, Speicherplatz zu erweitern bzw. Laufwerke zusammenzufassen. Mit ausgewachsenen SDS-Lösungen wie Microsoft’s Storage Spaces oder virtuellen Laufwerken/Pools wie StableBit’s DrivePool oder Divison-M’s Drive Bender ist das nicht vergleichbar. So fehlen Funktionen wie Balancing (Daten über Laufwerke verteilen), Spiegelung (Mirror, Parity, RAIDx) und weiteres.

Je nach Anspruch oder Aufgabenstellung dennoch eine sinnvolle Möglichkeit.


Windows: Robocopy mit VSS (Schattenkopie)

$
0
0

Robocopy ansich kann keine geöffneten Dateien kopieren. Seit Windows Server 2003 schaffen die Schattenkopien (VSS) abhilfe. Mit ein paar zusätzlichen Befehlen bzw. einem Skript kann man Robocopy und VSS zusammenbringen.

Folgendes Skript erstellt eine Schattenkopie, sichert diese mittels Robocopy und entfernt sie wieder. Robocopy arbeitet dabei mit Versionen. Eine Protokollierung und etwas Fehlerbehandlung ist ebenfalls enthalten. Ein Monitoring kann beispielsweise bei vorhandensein einer „error.txt“ Alarm schlagen.

@echo off

cls

rem Evtl. vorhandenes altes Fehlerprotokoll entfernen

 if exist error.txt del /q error.txt

rem Protokoll erstellen

 echo %date% - %time% - Start > current.log

rem Konfiguration

 set DriveLetter=D:
 set ShadowCopyVolume=D:\CDP\ShadowCopyVolume

 set Source=%ShadowCopyVolume%\Share
 set Destination=D:\CDP\Backup\Share

 set NumberOfVersionsToKeep=10

rem Version.txt pruefen, falls diese nicht existiert, dann anlegen

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

rem Version auslesen und ggf. festlegen

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

rem Ziel-Ordner pruefen und ggf. anlegen

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

rem Schattenkopie erstellen

 echo %date% - %time% - Schattenkopie erstellen >> current.log

 vssadmin create shadow /for=%DriveLetter% > ShadowCopy.txt
 if %errorlevel% neq 0 echo error > vss-error.txt & exit

rem Schattenkopie-Volumename auslesen

 type ShadowCopy.txt | find "Schattenkopie-Volumename:" > ShadowCopyName.txt
 set /p ShadowCopyName=< ShadowCopyName.txt set ShadowCopyName=%ShadowCopyName:~30% rem Schattenkopiekennung auslesen type ShadowCopy.txt | find "Schattenkopiekennung:" > ShadowCopyID.txt
 set /p ShadowCopyID=< ShadowCopyID.txt set ShadowCopyID=%ShadowCopyID:~26% rem Schattenkopie bereitstellen mklink /d "%ShadowCopyVolume%\" "%ShadowCopyName%\" > NUL
 
rem Robocopy ausfuehren

 echo %date% - %time% - Robocopy ausfuehren >> current.log

 robocopy "%Source%" "%Destination%\%Version%" /mir /r:0 /w:0 /xj /np /log:Logs\robocopy-%Version%.log
 if %errorlevel% gtr 1 echo Fehler bei der Ausfuehrung von Robocopy >> error.txt
 type Logs\robocopy-%Version%.log >> current.log

rem Schattenkopie-Bereitstellung aufheben

 echo %date% - %time% - Schattenkopie Bereitstellung aufheben und die Schattenkopie entfernen >> current.log

 rmdir "%ShadowCopyVolume%"
 
rem Schattenkopie loeschen

 vssadmin delete shadows /shadow=%ShadowCopyID% /quiet > NUL
 if %errorlevel% neq 0 echo Fehler beim Loeschen der Schattenkopie >> error.txt & exit
 
rem Aufraeumen

 del ShadowCopy.txt /q
 del ShadowCopyName.txt /q
 del ShadowCopyID.txt /q

echo %date% - %time% - Ende >> current.log

Den Schattenkopie-Teil des Skripts habe ich irgendwann 2016/2017 mal im Rahmen eines Feldversuchs geschrieben. Der Robocopy-Versionen-Teil stammt aus diesem Beitrag:

Windows: Robocopy-Backup mit Versionen

In dieser Fassung läuft das Skript bei einem Kunden auf einem Windows Server 2016 stündlich Montags bis Freitags von 08:00 bis 17:00 Uhr und stellt sozusagen ein Marke-Eigenbau-CDP für eine Freigabe dar.

Diese Maßnahme wurde notwendig, da immer wieder aus einer Branchen-Anwendung heraus aus versehen Dateien und Ordner gelöscht wurden.

Man kann zwar auch die regulären Schattenkopien häufiger laufen lassen, allerdings wird dann der Schattenkopie-Speicher entsprechend belastet. Da es allerdings nur darum geht einen Ordner öfter zu sichern erschien diese Lösung attraktiver. Mit dem Skript hat man außerdem die Option als Ziel ein anderes Laufwerk, ein NAS oder Server anzugeben.

Windows: PrimoCache per Skript überwachen

$
0
0

PrimoCache von Romex Software lässt sich neben der grafischen Oberfläche per Command Line Interface (CLI) steuern. Dies bietet die Möglichkeit, den Status abzufragen und so das Produkt bzw. den Cache-Status in ein Monitoring einzubinden.

Im Programmordner unter

C:\Program Files\PrimoCache

befindet sich die Datei „rxpcc.exe“. Die möglichen Parameter sind in der Hersteller-Hilfe beschrieben:

PrimoCache – Help Documents – Command Line Interface (CLI)

Die CLI kann nur ausgeführt werden, wenn die GUI geschlossen ist!

Ein Überblick über den Status der angelegten Cache-Tasks erhält man mit „status“. Die Ausgabe sieht so aus:

Cache Task #1 {4A493D32-AFD5-4319-B4A4-AF4861378139}
Status: Active
Level-1 Cache: 4096MB
MM: 4096MB, IM: 0MB
R/W Ratio: Shared
Options: -
Level-2 Cache: 0MB
Block Size: 8KB
Strategy: Read & Write
Defer-Write: Enabled
Latency: 10s
Mode: Native
Options: -
Prefetch: Enabled
Overhead: 182,41MB
Volume #4: Cache (Active)
Strategy: Read & Write
Level-2 Cache: Disabled
Defer-Write: Enabled
Prefetch: Enabled

Eine Statistik gibt es beispielsweise mit „perf -c <Task-Nummer>“:

Volume #4:
Total Read : 4,32GB
Cached Read : 400,42MB (9,0%)
L2Storage Read : 0 (0,0%)
L2Storage Write : 0
Total Write (Req) : 4,37GB
Total Write (L1/L2) : 4,37GB / 0
Total Write (Disk) : 3,48GB (79,5%)
Urgent/Normal : 0 / 3,48GB
Deferred Blocks : 52 (0,0%)
Trimmed Blocks : 21887
Prefetch : Inactive
Free Cache (L1) : 69,01MB
Free Cache (L2) : 0

Eine Verkettung mehrerer Parameter wie „mem status perf -c 1“ funktioniert leider nicht. Möchte man die Ausgaben aus den einzelnen Abfragen in eine Datei schreiben hilft ein kleiner Batch-Aufruf:

@echo off

set PCPath=C:\Program Files\PrimoCache
set LogPath=C:\Logs\PrimoCache

cd "%PCPath%"

rxpcc.exe mem > "%LogPath%"\PrimoCache.log
echo. >> "%LogPath%"\PrimoCache.log
rxpcc.exe status >> "%LogPath%"\PrimoCache.log
echo. >> "%LogPath%"\PrimoCache.log
rxpcc.exe perf -c 1 >> "%LogPath%"\PrimoCache.log

Die wichtigsten Indikatoren das der Cache aktiv ist dürften die Zeilen

  • „Status:“ – Mögliche Werte „Active“, „Paused“
  • „Level-1 Cache:“ – Mögliche Werte „Disabled“, „<Cache-Größe>“
  • „Level-2 Cache:“ – Mögliche Werte „Disabled“, „<Cache-Größe>“

aus der „status“-Ausgabe sein. Ergo könnte man das zuvor erstellte Log danach auswerten:

type "%LogPath%"\PrimoCache.log | find "Status: Active"
if %errorlevel% gtr 0 echo Cache-Status-Fehler >> "%LogPath%"\error.txt

type "%LogPath%"\PrimoCache.log | find "Level-1 Cache: 4096MB"
if %errorlevel% gtr 0 echo Level-1 Cache deaktiviert >> "%LogPath%"\error.txt

Windows: Robocopy-Sicherung nach einer Änderung durchführen

$
0
0

Mit dem Parameter „/mon“ lässt sich bei Robocopy angeben, das dieses ausgeführt wird, wenn eine definierte Anzahl an Änderungen in der Quelle festgestellt wurden.

Im einfachsten Fall sieht das beispielsweise so aus:

robocopy <Quelle> <Ziel> /mir /mon:1 /mot:0

„/mot“ gibt übrigens die Zeit an, wann ausgeführt wird. Zum Verständnis:

Mit „/mon:1 /mot:1“ erfolgt die Ausführung jede Minute, wenn in dieser Zeit mindestens eine Datei verändert wurde. Die Ausgabe sieht so aus:

-------------------------------------------------------------------------------
ROBOCOPY :: Robustes Dateikopieren für Windows
-------------------------------------------------------------------------------

Gestartet: Donnerstag, 27. Februar 2020 21:17:25
Quelle : C:\Temp\source\
Ziel : C:\Temp\Destination\

Dateien : *.*

Optionen: *.* /S /E /DCOPY:DA /COPY:DAT /PURGE /MIR /XJ /MON:1 /R:0 /W:0

------------------------------------------------------------------------------

Neues Verz. 0 C:\Temp\source\

------------------------------------------------------------------------------

Insgesamt KopiertÜbersprungenKeine Übereinstimmung FEHLER Extras
Verzeich.: 1 1 0 0 0 0
Dateien: 0 0 0 0 0 0
Bytes: 0 0 0 0 0 0
Zeiten: 0:00:00 0:00:00 0:00:00 0:00:00
Beendet: Donnerstag, 27. Februar 2020 21:17:25


Monitor: Warten für 1 Minuten und 1 Änderungen...
1 Minuten : 2 Änderungen.

Robocopy wird dabei sozusagen in Schleife ausgeführt bis das STRG+C gedrückt wird.

Geeigent ist dieser Modus um möglichst zeitnah Änderungen an eine andere Stelle zu spiegeln. Nicht geeignet ist er wiederum um jede Änderung in ein eigenes Ziel zu sichern, da Robocopy keine dynamische Änderung des Ziels, z.B. mit aktualisiertem Zeitstempel, zulässt.

 

Links und Use Cases von, über und mit PrimoCache

$
0
0

Über PrimoCache findet man nicht so wirklich viel im Netz, eine Google-Suche liefert „gerade mal“ 69.100 Treffer. Ok, das war jetzt nicht ganz ernst gemeint, dennoch hier mal eine kleine Link-Sammlung.

heise testete PrimoCache 2017 (kostenpflichtiger Artikel):

Kurztest – Festplatten-Cache – Turbo für Festplatten

Ein gutes Kommentar dazu findet sich wiederum später zu einem anderen Artikel:

RAM-Cache schlägt SSD

Nahezu selbstverständlich finden sich auch YouTube-Videos zum Programm.

Ein sehr interessanter Beitrag über die Performance in einer VDI-Umgebung (Virtual Desktop Infrastructure) findet sich hier:

How Do I Computer? – PrimoCache Server Edition 2.2.0 – Product Review

Dieser hat zwar mittlerweile schon ein paar Jahre auf dem Buckel (VÖ 2016), zeigt dafür sehr schön, welche Maßnahmen was für Änderungen bringen.

Eine Sammlung von Use Cases in verschiedenen Sprachen findet sich direkt auf der Hersteller-Seite:

Romex Software – PrimoCache – Examples of Usages, Tutorials, Articles, Reviews & Videos

Den zuvor genannten Beitrag sowie meine eigenen finden sich dort ebenfalls.

Zusätzlich sind auch die Kommentare zu Windows: Mit PrimoCache Windows und Anwendungen beschleunigen interessant.

Danke an Romex Software für’s Verlinken und Danke an alle die Kommentieren.

Weitere Erfahrungswerte sind willkommen!

Windows: Skript ausführen sobald eine Datei oder ein Ordner sich ändern

$
0
0

Möchte man eine Datei oder Ordner auf Änderungen überwachen und dann im Falle des eintretens eines Ereignisses einen Befehl oder Skript ausführen, so bieten sich hierfür Tools wie watchexec oder Watchman an. In diesem Beitrag geht es um das erstgenannte Tool.

Die Handhabe von watchexec ist denkbar einfach:

watchexec <Befehl>

Beim simplesten Aufruf wird der aktuelle Ordner auf Änderungen überwacht und sobald eine Eintritt der angegebene Befehl ausgeführt.

Gezielt kann man mit „-w“ den bzw. die zu überwachenden Ordner angeben:

watchexec -w <Ordner> <Befehl>

„-w“ kann mehrfach angegeben werden:

watchexec -w <Ordner 1> -w <Ordner 2> <Befehl>

Das Tool bietet eine Vielzahl ein Parametern:

watchexec 1.12.0
Execute commands when watched files change

USAGE:
    watchexec [FLAGS] [OPTIONS] ...

FLAGS:
    -c, --clear                Clear screen before executing command
    -h, --help                 Prints help information
    -k, --kill                 Send SIGKILL to child processes (deprecated, use -s SIGKILL instead)
        --no-default-ignore    Skip auto-ignoring of commonly ignored globs
        --no-ignore            Skip auto-loading of ignore files (.gitignore, .ignore, etc.) for filtering
    -n, --no-shell             Do not wrap command in 'sh -c' resp. 'cmd.exe /C'
        --no-vcs-ignore        Skip auto-loading of .gitignore files for filtering
    -p, --postpone             Wait until first change to execute command
    -r, --restart              Restart the process if it's still running
    -V, --version              Prints version information
    -v, --verbose              Print debugging messages to stderr
    -W, --watch-when-idle      Ignore events while the process is still running

OPTIONS:
    -d, --debounce     Set the timeout between detected change and command execution, defaults to 500ms
    -e, --exts           Comma-separated list of file extensions to watch (js,css,html)
    -f, --filter ...        Ignore all modifications except those matching the pattern
    -i, --ignore ...        Ignore modifications to paths matching the pattern
    -w, --watch ...            Watch a specific directory
        --force-poll       Force polling mode
    -s, --signal             Send signal to process upon changes, e.g. SIGHUP

ARGS:
    ...    Command to execute

Wenn man nicht möchte, das direkt nach dem Start bereits einmal der angegebene Befehl ausgeführt wird, muss „-p“ verwendet werden. Beendet bzw. abgebrochen wird mit „Strg + c“.

Nachdem die Parameter „/mon“ und „/mot“ von Robocopy nur bedingt dazu geeignet sind, um Änderung à la CDP in einen jeweiligen Ordner zu erfassen, bietet sich nun in der Kombi mit watchexec eine neue Gelegenheit.

Der Befehl zum Aufruf kann so aussehen:

watchexec -p -w C:\Source --force-poll 30000 cdp.cmd

„–force-poll“ mit der Angabe von 30000 ms (30 s) ist in diesem Kontext notwendig, da sonst sowohl die geänderte Datei(en) als auch eine leere Kopie des Quellordners am Ziel erstellt wurden. Die Parameter muss man ggf. den eigenen Bedürfnissen anpassen. Anbei ein Beispiel-Skript für die Nutzung von Robocopy. Am Ziel-Ordner wird nach jeder Änderung ein Unterordner mit Zeitstempel erstellt, der die geänderte(n) Daten enthält.

@echo off


rem Konfiguration

 set source=C:\Source
 set destination=C:\Backup

rem Datum und Uhrzeit umwandeln

 set day=%date:~0,2%
 set month=%date:~3,2%
 set year=%date:~6,4%

 set hh=%time:~0,2%
 set mm=%time:~3,2%
 set ss=%time:~6,2%

rem Robocopy

 robocopy "%source%" "%destination%\%year%-%month%-%day%_%hh%-%mm%-%ss%" /s /xj /r:0 /w:0 /m /xx

Die Ausgabe sieht bei einem Durchlauf so aus:

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robustes Dateikopieren für Windows
-------------------------------------------------------------------------------

  Gestartet: Sonntag, 1. März 2020 22:29:55
   Quelle : C:\source\
     Ziel : C:\Backup\2020-03-01_22-29-55\

    Dateien : *.*

  Optionen: *.* /S /DCOPY:DA /COPY:DAT /XX /XJ /M /R:0 /W:0

------------------------------------------------------------------------------

         Neues Verz.       1    C:\source\test-ordner5\
100%        Neue Datei                 1        test-file5.txt

------------------------------------------------------------------------------

           Insgesamt   KopiertÜbersprungenKeine Übereinstimmung    FEHLER    Extras
Verzeich.:         8         8         0         0         0         0
  Dateien:         8         1         7         0         0         0
    Bytes:       280         1       279         0         0         0
   Zeiten:   0:00:00   0:00:00                       0:00:00   0:00:00


Geschwindigkeit:                 500 Bytes/Sek.
Geschwindigkeit:               0.028 Megabytes/Min.
   Beendet: Sonntag, 1. März 2020 22:29:55

Im Ziel-Ordner sieht es so aus:

28.02.2020  23:14    <DIR>          2020-02-29_12-08-09
28.02.2020  23:14    <DIR>          2020-02-29_12-08-35
28.02.2020  23:14    <DIR>          2020-02-29_12-08-42
28.02.2020  23:14    <DIR>          2020-02-29_12-08-44
01.03.2020  22:15    <DIR>          2020-03-01_22-15-39
Viewing all 1827 articles
Browse latest View live


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