MediaWiki Update Skript „mediawiki-updater“

Weil mich in erster Linie jede sich wiederholende Aufgabe anödet (mein Leitsatz ist: „Wenn du etwas zwei Mal tun musst, automatisiere es. Die Wahrscheinlichkeit dass du es erneut tun musst steigt mit jedem weiteren Mal.“) habe ich die sich in regelmäßigen Abstand wiederholende Aufgabe „MediaWiki aktualisieren“ in ein zwei Skripte gepackt.

Da ich Installationen sowohl auf Linux als auch auf Windows betreue wurden es ein Bash- und ein PowerShell-Skript.

Die Dateien (und Voraussetzungen) findet ihr in folgendem Repo:

https://github.com/gpunktschmitz/mediawiki-updater

Hier kurz was die Skripte tuen:
1. Prüfen ob eine neue Version verfügbar ist
2. MySQL Datenbank sichern
3. Backup (Kopie) der derzeitigen Installation anlegen
4. neue MediaWiki Version herunterladen
5. neue MediaWiki Version in temporäres Verzeichnis extrahieren
6. vorhandene Installation (Dateien) mit neuer Version überschreiben
7. Löschen des Verzeichnisses „vendor“
8. mittels Git neue externe Bibliotheken in das Verzeichnis „vendor“ klonen
9. alte Backups löschen (die letzten 3 werden beibehalten)
10. das Skript „maintenance/update.php“ ausführen

Beim Erstellen hatte ich auch im Hinterkopf das Skript im Cron/eine geplante Aufgabe zu packen. Dahingehend habe ich es aber noch nicht ausgelegt – meine Installationen habe ich durch manuelles Ausführen der Skripte erfolgreich von 1.28.2 auf 1.29.0 gebracht.

Hoffe die Skripte helfen auch dir diese Aufgabe zu automatisieren.

Fenster mittels Shortcut „Immer sichtbar“ halten

Unter Windows verwende ich das betagte, aber immernoch gut funktionierende Tool WinSplit, welches den Shortcut „CTRL+ALT+O“ mit sich bringt um ein Fenster immer oberhalb aller anderen zu halten.

Diese Funktionalität (und Shortcut) wollte ich auch auf meinem Laptop mit Linux Mint haben.

Hier gelang es mir ohne Installtion etwaiger Software, denn die Funktionalität kann man über das Kontextmenü eines jeden Programm-Icons direkt aktivieren.

https://cdn.gpunktschmitz.de/blog/183/00-manually-set-window-always-on-top.png

Ein Programm zum Hinterlegen von Shortcuts existiert ebenfalls.

https://cdn.gpunktschmitz.de/blog/183/01-open-keyboard-shortcuts.png

Also, das Programm „Keyboard Shortcuts“ aufrufen und mittels „Add“-Button einen neuen Shortcut anlegen.

https://cdn.gpunktschmitz.de/blog/183/02-add-new-keyboard-shortcut.png

Einen Namen und das folgende als Command eingeben:

wmctrl -r :ACTIVE: -b toggle,above

https://cdn.gpunktschmitz.de/blog/183/03-enter-new-shortcut-command.png

Ist der Shortcut angelegt clickt man auf die Spalte „Shortcut“ des Eintrags (wo derzeit „Disabled“ steht).

https://cdn.gpunktschmitz.de/blog/183/04-click-on-disabled-to-set-new-shortcut.png

Nun kann man den gewünschten Shortcut hinterlegen, indem man die gewünschte Tastenkombination drückt.

https://cdn.gpunktschmitz.de/blog/183/05-press-shortcut-and-close.png

SikuliX – Tastaturkombinationen eingeben lassen

Ich wollte auf die Schnelle ein Automatisierung mit meinem Lieblingstool SikuliX programmieren. Dazu musste ich eine Tastenkombination drücken lassen. Trial and Error mit den ersten Web-Suchen führten nicht zum Erfolg.

Zum einen weil sich scheinbar mal die Syntax geändert hat und zum anderen weil ich im Testskript die Groß- und Kleinschreibung ignorierte. Das tut SikuliX aber nicht.

Hier also einige Beispiele von Tastenkombinationen in SikuliX:

# CTRL+HOME
type(Key.HOME, KeyModifier.CTRL)
 
# ALT+F4
type(Key.F4, KeyModifier.ALT)
 
# CTRL+v
type('v', KeyModifier.CTRL)
 
# CTRL+ALT+ESC
type(Key.ESC, KeyModifier.CTRL+KeyModifier.ALT)

FileZilla Server – Verbindungsversuch fehlgeschlagen „ECONNREFUSED – Connection refused by server“

Das Problem

Versucht man einen FileZilla Server als FTPS mit den Standard-Einstellungen zu verwenden kommt es beim Verbindungsversuch zum Fehler „ECONNREFUSED – Connection refused by server“.

Die Ursache

Bei mir lag es daran, dass ich die Standard-Einstellung beibehalten hatte.

Der Fehler liegt im Skript, es gibt immer 127.0.0.1 zurück.

Die Lösung

Die Lösung ist einfach, ich habe ein Skript erstellt dass die aktuelle IP zurückgibt.

https://gpunktschmitz.com/ip/

Feiertagskalender für Nürnberg

Ich weiss .. ich weiss … „aber es gibt doch schon Feiertagskalender .. sind sogar direkt in Outlook abrufbar“. Aber dieser eben nicht. Da in Deutschland in jeder Stadt mal ein Feiertag gilt und dann, wenn wieder weniger Katholiken als Evangelen gezählt werden eben wieder nicht, habe ich mir diesen Kalender erstellt. Einzig und allein um ihn in mein Outlook zu importieren.

Welche Feiertage sind nun in diesem Kalender?
„Alle“ die derzeit in Nürnberg gelten. Es heißt „alle“, weil ich hier nur solche eingetragen habe, die auch auf einen Werktag (Montag – Freitag) fallen (können). Die anderen interessieren mich nicht. Vor allem nutze ich diesen Kalender um meinen Urlaub zu planen.

Den „holiday calendar“ (wie ich ihn in Outlook benannt habe) lass ich mir immer anzeigen und überlappe diesen mit meinem persönlichen.

holiday calendar

Somit habe ich bei Terminabsprachen und Urlaubsplanungen die (für mich) wirklich „echten“ Feiertage stehts im Blick.

Wenn du auch diesen Kalender abrufen möchtest, hier ist er:

https://ics.gpunktschmitz.de/bank-holiday-calendar-nuremberg.ics

du willst deine Internetgeschwindigkeit testen? – verwende fast.com!

Von http://speedof.me war ich Fan der ersten Stunde. Am Anfang war es werbefrei, schnell, zuverlässig und mobile-friendly. Irgendwann wurde dann Werbung mit dazu geschaltet und ich war genervt wenn ich die Seite versuchte aufzurufen, weil das dann immer (gefühlt) ewig gedauert hat bis der Speedtest startete.

Alles was ich wissen wollte war, wie schnell der Download war. SpeedOf.Me bietet an mehrere Tests zu starten und diese dann auch graphisch zu vergleichen. Ein „Overhead“ den ich in 99,9% nicht benötigte/verwendete.

 

Durch Probleme mit meinem DSL-Anschluss verwies mich die Hotline meines Anbieters auf https://fast.com. Die lädt superschnell und macht genau das was ich möchte – sie zeigt mir die Download-Geschwindigkeit an. Perfekt für meine Zwecke – Danke Netflix!

.ics Kalender für den gelben Sack in Nürnberg [update 10.01.2017]

Ich habe mir die letzten Jahre immer einen Kalender für den Abfuhrplan des gelben Sacks erstellt. Dieses Jahr habe ich dies automatisiert getan. Dabei kam mir der Gedanke für alle Touren die Termine der Abholung einzulesen. Somit entstand das Projekt „Kalender gelber Sack Nürnberg“.

Auf der Projektseite kann nach der Straße gesucht werden. Nach Auswahl der entsprechenden Straße wird der jeweilige Kalender angezeigt.

Zu finden ist das Projekt unter:
http://www.gpunktschmitz.de/kalender-gelber-sack-nuernberg/

[update 10.01.2017]
Das Projekt wurde mit den Daten bis 2019 aktualisiert. Danke an Kristian für die Erinnerung!

Robocopy – FEHLER 123 (0x0000007B) – Verzeichnisse mit Leerzeichen kopieren

robocopy meme

Die Fehlermeldung

Verwendet man eine aktuelle PowerShell und die Tab-Completion (Die Anführungszeichen fügt die Shell autmatisch hinzu.), so erhält man den Befehl:

Robocopy.exe 'C:\tmp\source with spaces\' 'C:\tmp\target with spaces\' /e

Und führt man diesen aus erhält man eine Fehlermeldung.

robocopy the filename directory name or volume label syntax is incorrect

Zu beachten ist, dass die Quelle und das Ziel von Robocopy „seltsam“ interpretiert werden. Das \' am Ende von Quelle und Ziel führt dazu, dass das Anführungszeichen escaped (als Text interpretiert) wird und somit die ganze Anweisung fehlerhaft wird.

Die Lösung

Es gibt eine ganz einfache Lösung, man lässt den letzten Backslash in Quelle und Ziel weg.

Robocopy.exe 'C:\tmp\source with spaces' 'C:\tmp\target with spaces' /e

Backup Exec – TECH126877 – the device or media server cannot be deleted because existing jobs or selection lists remain

Das Problem

Vor einiger Zeit konnte ich ein Sicherungsziel (einen „Speicher“), namentlich „internal RAID“ in Backup Exec 15 nicht entfernen. Das GUI gab mir folgende Fehlermeldung zurück:

„The device (or media server) cannot be deleted because existing jobs or selection lists remain.“

Ich bin also durch alle Sicherungsjobs gegangen und konnte keinen finden wo der zu entfernende Speicher konfiguriert wäre. Sehr komisch …

Die Google-Suche

Eine schnelle Google Such brachte mich zu dem Support-Artikel von Symantec Veritas TECH126877 das einem dazu rät den Symantec Support anzurufen?!?!1

Die Lösung

Ich konnte nicht glauben dass dies der Weg ist einen Speicher von Backup Exec zu entfernen und stolperte über die „Backup Exec Management Command Line“.

windows-search-backup-exec

Diese begrüßte mich mit den Basis Kommandos. Der Befehl „Get-BECommand“ gibt eine Liste aller verfügbarer Kommandos zurück.

backup-exec-management-command-line-interface

In dieser Liste bin ich auf die Befehle „Get-BEJob“ und „Remove-BEJob“ gestoßen. Also mal gucken was „Get-BEJob“ zurückgibt.

backup-exec-management-command-line-interface-get-bejob

Ausgezeichnet; Es wird ein Objekt zurückgegeben das man nach „Storage“ filtern kann. Dann wollte ich wissen was „Remove-BEJob“ als Input nimmt.

man-remove-bejob

Verstehe, man kann also die Objekte von „Get-BEJob“ an „Remove-BEJob“ weiterleiten.

Alles was zu tun war, ein Liste aller Backup Exec Sicherungsaufträge mittels „Get-BEJob“ abzurufen, diesen auf den Speicher/Storage „internal RAID“ zu filtern und das an „Remove-BEJob“ weiterzuleiten.

Das ganze kann vorerst mit dem Parameter „-WhatIf“ aufgerufen werden .. nur um sicher zu gehen was gelöscht wird ;)

remove-backup-exec-jobs-with-mapped-devices

Get-BEJob | where storage -eq "internal RAID" | Remove-BEJob

Es brauchte also nur ein bisschen PowerShell .. oder man kann natürlich den Symantec/Veritas Support anrufen …

Notebook geht nicht in den Standby wenn man den Deckel schließt

Von heute auf morgen wolte mein Notebook nicht mehr in den Standby gehen, wenn ich selbiges zuklappte. Nach Prüfung aller relevanten Einstellung in meiner Linux Mint 17 Installation führte mich eine schnelle Suche auf folgende Seite: http://askubuntu.com/questions/395428/laptop-does-not-suspend-when-lid-is-closed.

Die Lösung für mich war, die Datei /etc/systemd/logind.conf zu öffnen, die Option HandleLidSwitch auf suspend zu setzen (gültige Werte sind suspend, hibernate und poweroff) und das Notebook neuzustarten.