Die Drush-Erweiterung drush_sql_dump_hold erweitert das Drush-Kommando sql-dump, um eine weitere Option: hold.
Diese Option wurde für die häufige, wenn nicht sogar periodische Ausführung von drush sql-dump
geschrieben und sorgt dafür, dass im via Option result-file (Mandatory) spezifizierten Verzeichnis, nur die durch hold Option angegebene Anzahl von SQL-Dumps aufbewahrt wird.
Hier das Beispiel einer manuellen Ausführung über die Shell innerhalb einer Drupal-Instanz:
- Aus der Angabe in der Option result-file wird versucht, den Pfad zu extrahieren, ansonsten wird das aktuelle Verzeichnis genommen.
- Durch den Befehl date bekommt der Dump seinen eindeutigen Namen, welcher sich aus JahrMonatTag-StundeMinuteSekunde + Erweiterung sql zusammensetzt und somit sortierbar ist.
- Die Validierung dieser Option wird durch das sql-dump Kommando gewährleistet
- Zu guter letzt sorgt die Option
--hold=30
dafür, dass die die neusten 30 SQL-Dumps behalten werden
drush sql-dump --result-file=/path/to/dumps/`date +%Y%M%d-%H%m%S`.sql --hold=30
Dieser Aufruf erzeugt folgende Ausgabe, bei z.B. 33 Dumps und einem hold-Wert von 30:
Database dump saved to /path/to/dumps/20121109-113000.sql [success]
Do you really want to purge the following dumps:
/path/to/dumps/20111213-202504.sql
/path/to/dumps/20111214-202504.sql
/path/to/dumps/20111214-202504.sql
/path/to/dumps/20111216-202504.sql (y/n):
Beispielhafte Drush-Alias-Konfiguration für drush sql-dump in Kombination mit hold-Option.
<?php
$aliases['mysite'] = array(
'uri' => 'default',
'root' => '/path/to/drupal'),
'command-specific' => array (
'sql-dump' => array(
'result-file' => TRUE,
'result-file' => '/path/to/dump-dir/@DATABASE_@DATE.sql',
'gzip' => TRUE,
'hold' => 30,
'yes' => TRUE,
),
),
);
Ein Cronjob für die periodische Ausführung von drush sql-dump einrichten.
# m h dom mon dow command
45 4 * * * /path/to/drush @mysite sql-dump
Mehr unter