Howto purge plenty of spam comments

Over the years plenty of spam comments piled up in zyanklee.de’s database (around 2k). Deleting them all manually would have been a massive chore, but lately I found help in the disguise of wp cli (https://wp-cli.org/).

Deletion of this many comments took me a few seconds:

 wp comment list --field=comment_ID --status=spam | xargs wp comment delete --force

 

howto backup huge MySQL servers?

How to backup huge mysql myisam databases with a massive load of tables?
I encountered the backup of database servers that hold on to some hundreds of database schemas with each about one hundred tables while having some hundred gigabytes of data in them as a big problem in mysql servers.

There are some issues with that:
* shutting down mysql may take up to an hour until all opened file handles have been closed
* mysqldump’ing all the databases and tables takes several hours
* uptime is mission critical

Tonight I stumbled upon two approaches:

Filesystem Snapshots

I thought of that option before, though never followed that thought till the very end. While searching for other approaches that might seem fit for at least testing them out, I found this small line:
echo "FLUSH TABLES WITH READ LOCK; SYSTEM /path/to/helper/backupscript.sh; UNLOCK TABLES;" | mysql -u <user> -p <password>
(http://dev.mysql.com/doc/refman/5.1/en/backup-methods.html at the third comment at the time of writing of this article)

In our case we could use this line as part of our backup script and instead of „/path/to/helper/backupscript.sh“ we would run a wrapper script to create a snapshot of the underlying LVM.

Maatkit’s mk-parallel-dump

The former maatkit was incorporated into the percona toolkit and the mk-parallel-dump and mk-parallel-restore were dropped. But luckily there are some backups on github. For example: https://github.com/ets/maatkit
There you can find a slightly enhanced version of the latest maatkit.

mk-parallel-dump might be an option for those older database servers, that lack a snapshot-able filesystem.

Disclaimer

Though I did not yet test any of these options myself. As soon as I tested them, I will do a new article on them.

HowTo: build the jenkins vagrant-plugin

At present I am preparing some of the tools helpfull/necessary for continuous integration: jenkins, vagrant, gitlab, jira and puppet.
To make the first two of those work nicely together there exists a jenkins plugin called vagrant-plugin at https://github.com/rtyler/vagrant-plugin , https://github.com/smartlogic/vagrant-plugin and https://github.com/aberrios85/vagrant-plugin
I decided to use the last version, as the original supports only very aged versions of jenkins and vagrant.

This is how the plugin can be build into a hpi file: (validated by hours of trial and error)


# install rvm and jruby in one command
curl -sSL https://get.rvm.io | bash -s stable --ruby=jruby
# activate rvm
source ~/.rvm/scripts/rvm
# get the vagrant-plugin sources
git clone https://github.com/aberrios85/vagrant-plugin.git
cd vagrant-plugin
# install needed gems
bundle install
# build the whole bunch
jpi build

Now you can install the plugin pkg/vagrant.hpi into your jenkins. But pay attention – depending on your webserver configuration you might need to increase settings … for example „client_max_body_size“ in nginx, if you want to use the upload feature of the jenkins web interface.

Continuous Log: Oracle VS Community, Teil 2

Oracle gibt OpenOffice auf.

Zur Pressemitteilung

Dies bestätigt in meinen Augen die hier skizzierte Entwicklung der von Oracle mit SUN aufgekauften OpenSource-Projekte. Viel mehr noch … Oracle scheint sogar bewußt in der Richtung zu agieren, die Projekte von sich weg zu treiben. Über die Hintergründe kann ich aber auch nur spekulieren … Geld spielt aber wahrscheinlich auch eine Rolle.

20 Jahre Linux

Vor 20 Jahren hat Linus Torvalds (damals im zarten Alter von 20 Jahren) zum ersten Mal öffentlich sein kleines, privates Projekt zur Erstellung eines kostenlosen Betriebssystems erwähnt – in einem Beitrag im damals noch sehr angesagten „Usenet“.

Heute – 20 Jahre später – erzählt die Linux Foundation die Geschichte des beeindruckendsten Betriebssystems der Welt:

PyRoom Test (Updated)

Ich schreibe heute mit einem anderen Modell von Text-Editor – er arbeitet im Vollbild und hat fast keine sichtbaren Features. Ziel dahinter ist, dass er so wenig wie möglich ablenkt und man sich dadurch voll aufs schreiben konzentrieren kann.
Die Idee an sich ist sicherlich nichts Neues und es gibt bestimmt eine große Menge an verschiedenen Implementationen. Die von mir gerade getestete Implementation begnügt sich damit, den gesamten Bildschirm ab zu dunkeln und mit grüner Schrift auf schwarzem Hintergrund zu schreiben. Formatierungsoptionen sind bei solchen Programmen in der Regel gar nicht vorhanden.
Ich kenne noch eine andere Implementierung, welche derzeit leider nur für das iPad verfügbar ist. Dort werden auf hellem Hintergrund nur die aktuellen 3-4 Zeilen angezeigt, während ein paar Zeilen darüber und darunter ausgegraut werden. Alles was darüber hinaus geht, wird gar nicht mehr angezeigt. PyRoom Test (Updated) weiterlesen

Continuous Log: Oracle VS Community

Meine private Liste an ehemaligen SUN OpenSource Projekten, welche nach dem Kauf durch Oracle einen groß angelegten Fork gestartet haben und nun losgelöst vom Mutterprojekt weiter wachsen:

  • MySQL => MariaDB
  • OpenSolaris => Illumos, OpenIndiana
  • OpenOffice => LibreOffice
  • Hudson => Jenkins

Noch keine nennenswerten Forks:

  • VirtualBox
  • Java

Für Tipps bin ich immer dankbar (kann meine Augen ja nicht überall haben).

Logstalgia – Gource

Nur ein kurzer Hinweis für die Sysadmins unter euch, die mir nicht bei Twitter folgen – oder es schlicht übersehen haben:

Bin heute auf Logstalgia und Gource aufmerksam gemacht worden:

Logstalgia ist eine OpenGL-Darstellung von Apache2-Access-Logs. Das Projekt findet sich hier: https://code.google.com/p/logstalgia/ – ihr solltet es euch DRINGEND anschauen.

Gource macht sehr ähnliches, allerdings mit Version-Control-Systemen wie GIT, Mercurial und Bazaar (es gibt auch Third-Party-Unterstützung für SVN und CVS). Stattet dem Projekt einen Besuch auf https://code.google.com/p/gource/ ab und schaut euch an, wie der Code aufgebaut ist.

Beide Projekte sind vom neuseeländischen Entwickler Andrew Caudwell (http://www.thealphablenders.com) und stehen unter der GPLv3 zur Verfügung.

Wir leben in interessanten und aufregenden Zeiten

Linux wird besser. Laufend. Gerade im Bereich der Grafik- und Spiele-Unterstützung geht es mit riesen Schritten voran. Hier einige aktuelle Beispiele:

Achja – wo wir gerade dabei sind: schaut euch doch mal Minecraft an. Ein sehr nettes Spiel, welches das Prinzip von Sandbox-Spielen sehr schön verdeutlicht. Die Grafik ist … unzeitgemäß … aber für dieses Spielkonzept vollkommen angemessen.

Was scheinbar noch fehlt sind die großen Studios. Zugegeben, meiner Ansicht nach produzieren die sowieso nur Mist, aber es gibt ja scheinbar eine Menge Menschen die das auch spielen wollen.