Drush Backup und Cron
Eingetragen von t2k (258)
am 29.05.2014 - 02:01 Uhr in
am 29.05.2014 - 02:01 Uhr in
Hallo Forum!
Ich versuche mit dem sehr schönen Befehl drush archive-dump eine backup.sh Datei zu erstellen, die ich über einen Cronjob aufrufen kann. Momentan sieht der Inhalt dieser Datei so aus:
drush -r /www/kunde/bla/bla/webseiten/mein-drupalinstallation archive-dump default --destination=/www/kunde/bla/bla/backup/komplettsicherung_$(date +%H.%Mh-%d%m%Y).tar
Wenn ich diesen Code einfach so in Putty eingebe wird die Sicherung erstellt.
Gebe ich das in meine backup.sh ein und rufe diese auf läuft nix.
Habt ihr ne Idee was da falsch läuft?
Oder geht das was ich vorhabe nicht mit Drush?
Vielen Dank im vorraus und Grüße!
PS. Der Code ist hiervon inspieriert:
http://www.drupalcenter.de/handbuch/18854
- Anmelden oder Registrieren um Kommentare zu schreiben
Drush direkt als PHP Script aufrufen
am 30.05.2014 - 23:03 Uhr
Vor allem, wenn man selbst drush nur als bash alias betreibt (z.B. oft bei managed hosting nötig), dann können andere Scripte so nicht einfach drush auch so aufrufen. Das gilt auch für drush, wenn es auf Mysql zugreifen soll und dieses auch nicht als Programm alias ausführbar verfügbar ist.
Drush ist im Kern ein PHP commandline Programm (Siehe z.B. auch den Thread Drush Installation) und lässt sich auch so aufrufen:
/path-to/php /another-path-to/drush.php -r ...
Dies benötigt man dann oft auch als Befehl für den crontab.
Hallo, also ich verstehe
am 31.05.2014 - 07:14 Uhr
Hallo,
also ich verstehe nicht, weshalb Du den dump über php->drush>mysqldump machst
und nicht mysqldump direkt verwendest?
Das ist weniger Fehleranfällig und benötigt weniger Ressourcen.
MfG
Robert
Drush mit Mysql-Zugriff ist praktisch
am 31.05.2014 - 10:56 Uhr
Drush kann sich direkt aus der Settings.php die Mysql-Verbindungsdaten suchen oder nutzt die praktischen Site-Alias Konfigurationen auch schon zur Installation. Vor allem lassen sich die Drush Datenbank-Operationen z.B. im Site-Alias bequem steuern bezüglich dem Umgang mit speziellen Tabellen z.B. für Caching, die man evtl. in einem MySQL Dump nicht bzw. nur leer möchte, Zusammen mit dem Packen des Drupal-Verzzeichnis kann man so ein komplettes und kompaktes Drupal Backup mit "drush archive-dump" erzeugen. Aber neben archive-dump gibt es auch andere schnelle, praktische Zugriffe auf Mysql mit Hilfe von Drush, bei denen man direkt in der Datenbank. Aber noch viel praktischer ist das Verschieben von Drupal-Instanzen mittels rsync und sql-sync auch über Remote-Verknüpfungen z.B. von Live zu Dev-Systmen usw. Dabei kommt die Power von Drush erst recht zur Geltung.
Drush ruft für diese Operationen auch die Programme "mysql" und "mysqldump" auf, das stimmt. Aber die einzige Fehleranfälligkeit, die ich darin sehe, würde darin bestehen, wenn Drush zu wenig Ressourcen zur Verfügung hätte für den Vorgang. Aber im Vergleich zu Operationen im Browser die enge Grenzen benötigen, kann man PHP CLI oder speziell nur Drush größere Ressourcen zuweisen. Wenn man es aber zu wenig Ressourcen für Drush hat und/oder die Datenbank sehr groß geworden ist, macht es Sinn Mysqldump direkter zu verwenden. Aber selbst dann würde ich mir evtl. in einem Bash-Script per "drush sql-connect" die Datenbank-Verbindung in eine Variable laden. Denn manuelle Eingaben sind auch eine große Fehlerquelle und kosten Zeit.
Genauso verhält es sich auch bei komplexeren Verzeichnis-Strukturen und/oder sehr großen Datei-Verzeichnissen, die man dann besser mit einem individuellen tar Befehl erstellt. Aber für die meisten Drupal-Projekte, die mir so über den Weg Laufen lassen sich bequem mit den Standard-Drush Befehlen steuern inkl. denen, die direkt auf die Datenbank zugreifen.