Einfaches WordPress Backup via Bash-Script

Bevor ich beim nächsten Fall schon wieder alles einzeln zusammensuche, hier eine kleine und schnelle Copypasta aus dem Admin-Alltag:

Sicherung einer WordPress-Instanz

Achtung: WordPress wird damit zwar vollständig eingepackt und die Datenbank gesichert, aber es gibt keine Fehlerbehandlung (Datei existiert bereits …) und auch keinen CSRF-Schutz. Die Kommandozeilen-Argumente werden un-escaped ausgeführt.

⚠ Das Backup landet automatisch in ~/priv wenn man den zweiten Parameter weglässt.

Syntax:

./wordpress-backup.sh /var/www/path-to-wordpress

Code:

#!/bin/bash
#
# SEHR einfaches WordPress-Backup

# Commandline-Argumente da?
if [ $# -eq 0 ]; then
    echo "SYNTAX: wordpress-backup.sh <path-to-WordPress> <path-to-BackupFolder> [dbonly]"
    exit 1
fi

wpdir=$1
bakdir=$2

# Backupverzeichnis angegeben?
if [ -z "$bakdir" ]; then
    bakdir="~/priv"
fi

# Verzeichnisse da?
if [ ! -d $wpdir ]; then
    echo "Directory $wpdir does not exist."
    exit 1
fi
if [ ! -d $bakdir ]; then
    echo "Directory $bakdir does not exist."
    exit 1
fi

# Sinnvolle Dateinamen zusammenbauen
db_backup_name="wp-db-backup-"`date "+%Y%m%d"`".sql.gz"
wpfiles_backup_name="wp-files-backup-"`date "+%Y%m%d"`

# Zugangsdaten aus der config suchen
db_name=`grep DB_NAME $wpdir/wp-config.php | cut -d \' -f 4`
db_username=`grep DB_USER $wpdir/wp-config.php | cut -d \' -f 4`
db_password=`grep DB_PASSWORD $wpdir/wp-config.php | cut -d \' -f 4`

# MySQLdump, gzip
mysqldump --opt -u$db_username -p$db_password $db_name | gzip > $bakdir/$db_backup_name

# Nur wenn der dbonly Parameter nicht gesetzt ist
if [ ! "$3" = "dbonly" ]; then
    # WordPress einpacken
    tar -czvf $bakdir/$wpfiles_backup_name.tar.gz $wpdir

    # Oder als zip:
    #zip -r $bakdir/$wpfiles_backup_name $wpdir
fi

In RDP-Sitzungen (Remotedesktopverbindung) funktioniert auf einmal „kopieren“ und „einfügen“ nicht mehr

In einigen RDP-Sessions funktionieren plötzlich „kopieren und einfügen“ nicht mehr. Gestern ging’s noch, heute nicht mehr. In einer Sitzung kopieren, in eine andere einfügen geht nimmer. Auch Sitzung abmelden und anmelden bringt keine Besserung, copy+paste ist kaputt. Es ist davon auszugehen, das die Einstellung im Client richtig ist, also die Zwischenablage eingeschaltet ist (Lokale Ressourcen > Zwischenablage angehakt).

Der Fix ist einfach: Auf beiden Seiten (sowohl Sever als auch Client) den Prozess „rdpclip.exe“ beenden und neu starten. Dann gehts wieder. Dieser Bug ist erst knappe 8 Jahre bekannt, von einem Patch gehen wir also in nächster Zeit nicht aus. RDPCLIP beendet seine Abeit, wenn in einem Zwischenablage-Vorgang die Verbindung beendet wird. Passiert gerne mal wenn man eine größere Datei oder Textmenge kopiert und ein WLAN abreißt.

Lösung:

c:\> taskkill /IM "rdpclip.exe" /f && %SystemRoot%\System32\rdpclip.exe

(Auf Server UND Client ausführen)

„Der neue Edge“ Browser von Microsoft download

Microsoft hat den Download des neuen Edge Browsers … versteckt? Oder zumindest wirkungsvoll eingeschränkt. Man kann den Browser auf seiner eigenen Webseite nicht mehr wie gewohnt herunterladen sondern der Button will seinerseits nur noch Edge (?) öffnen (?!?).

Wir sind nicht sicher, ob diese Aktion der Verbreitung des neuen Browser wirklich zuträglich ist 🙄

Wie auch immer, mach ein Admin würde trotzdem gerne Edge auf Windows 10 oder Windows Server 2019 installieren und benötigt daher weiterhin den „MicrosoftEdgeSetup.exe“ Installer. Oder das Edge MSI zur Verteilung im Netzwerk.

Download Microsoft Edge (Setup/MSI)

MicrosoftEdgeSetup.exe (Windows 10/Server 2019) Download: https://go.microsoft.com/fwlink/?linkid=2069324&Channel=Stable&language=de

Microsoft Edge Offline-Installer X64.msi oder X86.msi

Festplatten („Datenträger“) werden nicht (vollständig) im Taskmanager angezeigt

Auf manchen Systemen starten die Leistungsindikatoren für physische Datenträger nicht automatisch und im Taskmanager werden daher die Leistungsdaten der Dateträger nicht angezeigt.

Wenn man etwas über den Durchsatz wissen möchte, müsste man dort immer den Ressourcenmonitor starten, aber es geht auch schneller.

Es werden nicht immer alle Datenträger angezeigt

Die Leistungsindikatoren der Festplatten „disks“ werden mit „diskperf“ gesteuert. Mit diesen Befehl schaltet man alle Leistungsindikatoren ein und sorgt dafür, das diese beim nächsten start auch automatisch geladen werden:

C:\>diskperf -Y

Logische und physische Leistungsindikatoren auf diesem System
        werden automatisch aktiviert.
Raw-Leistungsindikatoren werden auch für IOCTL_DISK_PERFORMANCE verwendet.

C:\>

Ereignis 513 von CAPI2 „An error occurred in Cryptographic Services while processing the OnIdentity()call in System Writer Object.“

Unter Windows Server 2016/2019 meldet der Volume Shadow Copy Service (VSS) auf einigen Systemen das Fehler-Ereignis 513:

Protokollname: Anwendung
Quelle: Microsoft-Windows-CAPI2
Ereignis-ID: 513
Aufgabe Kategorie: keine
Ebene: Fehler

Beschreibung
Fehler im Kryptografiedienste beim Verarbeiten der OnIdentity()System Writer-Objekt.

Das Original der CAPI2 Fehlermeldung in Englisch:

Log Name: Application
Source: Microsoft-Windows-CAPI2
Event ID: 513
Task Category: none
Level: Error

Description:
An error occurred in Cryptographic Services while processing the OnIdentity()call in System Writer Object.

Details:
AddLegacyDriverFiles: Unable to back up image of binary Microsoft Link-Layer Discovery Protocol.

System Error:
Access is denied.

Lösung

Das Problem tritt auf, wenn der VSS Writer „System“ nicht über die passenden Berechtigung zum auslösen des VSS-Prozesses verfügt. Die Anmelderegistrierung erstellt dann für das Dienstkonto (Lokaler Dienst) diesen Fehler.

Man muss nur die Berechtigungen für „Lokaler Dienst“ zu mslldp hinzufügen. Die vorhandenen Berechtigungen zeigt man an mit:

sc sdshow mslldp

An diesen String hängt man die ID für „Lokaler Dienst“ an, die etwa so aussieht:

(A; CCLCSWLOCRRC;;; SU)

Und fügt dann alles zusammen (also den originalstring und den Bezeichner von Lokaler Dienst) an. Das sieht (zum Beispiel) so aus:

sc sdset mslldp D:(D;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BG)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWRPWPDTLOCRRC;;;SO)(A;;CCLCSWLOCRRC;;;SU)