Mittwoch, September 05, 2012

Linux MySQL Backup Skript

Als erstes das Backup Skript (Linux Bash Shell):
#!/bin/bash
#filename: backup_mysql.sh
CURRENTTIME=`date '+%Y-%m-%d-%H%M%S'`
FILENAME="preferred_filename-$CURRENTTIME.sql"
mysqldump -d mysql_db_name -u username --password=password > $FILENAME
gzip $FILENAME
Für das Editieren der crontab Einträge stehen die folgenden Befehle zur Verfügung:
# Editieren der crontab mit dem vi
crontab -e
# Auflisten der aktuellen crontab für den aktuellen User
crontab -l
Das Skript möchte ich einmal täglich um 20:20 Uhr ausführen lassen. Dazu lege ich den folgenden Eintrag in der crontab ab (crontab -e starten und ala VI die Konfiguration eingeben):
# m h  dom mon dow   command
20 20 * * * /path/to/file/backup_mysql.sh.sh
Dabei haben die Spalten in der crontab die folgende Bedeutung:
  1. Spalte - Minute 0-59 (mehrere Minuten-Angaben mit Komma, z.B. 0,30 für xx:00 und xx:30 Uhr) * für alle Minuten */5 für alle 5 Minuten (also xx:00, xx:05, xx:10 Uhr, usw.)
  2. Spalte - Stunde 0-23 (mehrere Stunden-Angaben mit Komma, z.B. 10,13,17 für 10:xx, 13:xx und 17:xx Uhr) * für alle Stunden */4 für alle 4 Stunden (also 00:xx, 04:xx, 08:xx, 12:xx, 16:xx und 20:xx Uhr)
  3. Spalte - Tag im Monat 1-31 * für jeden Tag
  4. Spalte - Monat 1-12 * für jeden Monat
  5. Spalte - Wochentag 0-7 (0 und 7 stehen für Sonntag, 1 für Montag, usw.) * für jeden Wochentag
Unschön ist die feste Verdrahtung der Verbindungseigenschaften für die MySQL Datenbank. Beim nächsten mal packe ich die Informationen in eine Konfigurationsdatei.

UPDATE: Eine Idee, wie so etwas aussehen kann, findet sich hier oder hier.

AssertJ und java.util.List

AssertJ hat eine praktische Möglichkeit, Listen in JUnit Tests abzuprüfen. Insbesondere, wenn in der Liste komplexe Objekte abgelegt sind, s...