Problem mit Shopsicherung per FTP bzw. SSH

Hallo zusammen,

ich stehe gerade vor einem Problem mit der Sicherung des Shops. Ich würde gerne nach dem initialen Aufsetzen des Shops quasi täglich ein Backup anlegen, bevor ich mit den Änderungen anfange, damit ich jederzeit wieder ein Backup einspielen kann.

Die Sicherung der DB ist kein Thema, das läuft automatisch per MySQLDumper, aber mit der Sicherung der FTP-Dateien habe ich ein Problem. Ich wähle mich per SSH auf den Server und archiviere das komplette Verzeichnis per zip (zip -r archive.zip *) oder per tar (tar -cvzf archivefilename.tgz *) im jeweiligen Rootverzeichnis des Shops. Leider funktioniert das aber nicht richtig, da nicht alle Ordner bzw. Files berücksichtigt werden wie bspw. die .htaccess oder Cache-Verzeichnisse, vtl. auch noch mehr, ich kann es ja nicht prüfen. Woran das liegt, kann ich nicht sagen, könnte natürlich ein Rechteproblem sein.

Daher für mich jetzt natürlich die Frage, wie kann man seine Dateien richtig sichern, so dass auch wirklich der komplette Shop gesichert wird?

Vielen Dank!

Hallo,

das liegt an der Arbeitsweise der Shell (bash wahrscheinlich). Das * bedeutet nicht - wie von dir angenommen - jedes Zeichen (=jede Datei bzw. Directory), sondern jedes Zeichen/Datei mit Ausnahme von hidden files. Die Dateien mit einem . am Anfang, also die .htaccess. 

Wenn Du mit dem Tar-Befehl ein Verzeichnis oberhalb des Shopverzeichnisses startest, werden auch die .htaccess Dateien archiviert. 

tar -cvf MeinBackup.tar shopwarepfad

Bei den Befehlen hilft die manpage von Tar auf der Kommandozeile weiter oder die diversen Manpages zu Tar, z. B.

http://www.gnu.org/software/tar/manual/tar.html

 

Hallo hth,

vielen Dank für die Hilfe. In der Tat handelt es sich bei der Shell um bash. Ich habe es jetzt mal versucht mit dem Befehl tar -cvf backup.tar shopware, aber das klappt auch nicht. Es wird mittendrin abgebrochen mit „tar: Exiting with failure status due to previous errors“. In der Regel liegt das doch an Rechteproblemen beim Lesezugriff, oder?

Und noch ne Frage, mit cvf wird doch das Verzeichnis unkomprimiert gesichert, macht das Sinn, oder sollte man besser mit cvzf ein komprimiertes Backup erstellen?

Nochmals Danke!

Der Fehler code kann an fehlenden Leserechten liegen. Der Shelluser muss natürlich alle Files lesen dürfen. Wenn der Server so konfiguriert ist, dass der Shelluser z. B. durch php generierte Dateien nicht lesen darf, funktioniert tar bei einigen Dateien nicht. Das Fehlen einer htaccess (=hidden file) mit dem * als Source-Angabe bedingt keine Fehlermeldung.

Wenn man das Archiv mit tar -cf MeinBackup.tar shopverzeichnis erstellt, kann man unter Umständen eine Fehlermeldung in der Bash sehen und weiß, ob es z. B. an den Cache-Dateien liegt, die php erstellt.

Wenn das ein Rechteproblem ist, kann man den Tar-Befehl mit sudo ausführen, die Rechte der Shopwareverzeichnisse anpassen oder dem Shelluser Leserechte einräumen. Das ist dann aber eine Frage der Serverkonfiguration und sollte in einem der Foren superUser etc. diskutiert werden. 

Alternativ sucht man sich einen Hoster, der ZFS oder ein vergleichbares Dateisystem anbietet, mit dem man Snaphost direkt erstellen kann. Dann kann man immer die einzelnen Dateien aus dem Snapshot wiederherstellen. Das ist auch verlässlicher als tar. Es gibt Verwaltungstools mit denen man den Tar-Befehl direkt aus der Weboberfläche starten kann und die werden z. T. ebenfalls von den Hosting-Unternehmen fertig konfiguriert bereit gestellt. Dann muss man sich um die Rechte ebenfalls nicht kümmern.

 

Ob man ein Tar-Archiv komprimiert oder nicht, hängt doch nur davon ab, ob man Festplattenplatz sparen muss. Es müssen schon sehr viele Bilder in Shopware vorhanden sein, bis das Archiv unerträglich groß wird. An dem gzip MeinBackup.tar sollte es nicht scheitern und das kann man auch direkt mit dem tar-Befehl erledigen. 

Vielen Dank für die ausführliche Antwort!

Ich werde mich mal mit dem Hoster (all-inkl.) in Verbindung setzen und nachfragen, was da möglich ist. Das Problem haben sicherlich ja noch ne ganze Menge anderer Kunden…

Jetzt hat es funktioniert, nachdem der Shop umgestellt wurde auf cgi und so der User die entsprechenden Rechte hat. Hier noch weitere Infos dazu: http://forum.shopware.com/discussion/34743/besitzrechte-und-dateirechte-wie-setzen