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.

Keine Kommentare:

Kommentar veröffentlichen

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...