Sebastian: Backup mit TAR - aber nur *.php etc.

Beitrag lesen

Hallo,
habe es nun mithilfe von u.a. Manuel im Forum, dem Chat, Nachdenken und Ausprobieren geschafft :-)

Fürs Archiv:

Zuerst habe ich per find folgendes gesucht:

find ORDNERNAME -name '*.php' -o -name '*.csv' -o -name '*.html'

hier kann man per  "-o -name '*.DATEIENDUNG'" beliebig viele Dateiendungen hinzufügen

find gibt einem dann alle Dateien, die dazu gefunden werden, in einer Liste aus

Ans Ende dieses Queries dann ein > ergebnisliste.txt

So hat man dann eine Liste aller gefundenen Dateien mit Pfadangabe in der Datei ergebnisliste.txt

Komplett gibt man in der Shell also ein:

find ORDNERNAME -name '*.php' -o -name '*.csv' -o -name '*.html' > ergebnisliste.txt

Diese gespeicherte Datei kann man nun widerum als Basis für tar verwenden:

tar -cvzf archivname.tgz -T ergebnisliste.txt

durch das -T ergebnisliste.txt weiss tar nun, dass es eine Liste der zu archivierenden Dateien in der Datei ergebnisliste.txt findet.

Das ganze packt tar dann - in diesem Beispiel mit gzip-Komprimierung - zusammen in das Archiv archivname.tgz
Und zwar inklusive Verzeichnisstruktur und Dateirechten.

Noch ein Hinweis:
date +%Y-%m-%d spuckt das aktuelle Datum im Format 2007-01-01 aus (Jahr-Monat-Tag).
Wenn man also folgendes schreibt:

tar -cvzf backup_files__date +%Y-%m-%d.tgz -T ergebnisliste.txt

kommt dabei z.B. der Dateiname "backup_files__2007-01-01.tgz" heraus. So weiss man immer, von wann das Backup stammt.

Das ganze kann man nun noch automatisieren, indem man den ganzen Klabautsch in eine Textdatei schreibt und diese *.sh nennt.

Hier für ganz Faule die ready-to-copy *.sh-Datei:
   (Für richtig Faule: die Ordner müsst ihr schon selber ersetzen *g*)

---------------------------------------------------------

#In Backupverzeichnis wechseln (Unbedingt beachten, dass das Verzeichnis absolut ist; bei Confixx unter Debian z.B. meist /var/www/webXY/html/DEIN_PFAD)
cd /VERZEICHNIS_IN_DEM_DAS_BACKUPSCRIPT_GESPEICHERT_IST

#Dateiliste aller Dateien erstellen, die gebackupt werden sollen (Auch hier muss die Ordnerangabe absolut sein!)
#     Noch ein Hinweis: es können, wie bereits im Forum beschrieben, beliebig viele Dateiendungen per -o -name '*.dateiendung' hinzugefügt werden
find /ORDNER_IN_DEM_GESUCHT_WERDEN_SOLL -name '*php' -o -name '*.html' -o -name '*.csv' > filelist_to_backup.txt

#Dateiliste auf 0777 chmoden, damit die auch sicher gelesen und nachher wieder gelöscht werden kann
chmod 0777 filelist_to_backup.txt #Hier kann die Ordnerangabe relativ sein, da wir ja schon in dem Verzeichnis sind

#TarGZIP-Archiv erstellen
tar -cvzf backup____date +%Y-%m-%d.tgz -T filelist_to_backup.txt

#Dateiliste löschen
rm filelist_to_backup.txt

#fertig

---------------------------------------------------------

Der Vollständigkeit halber: Datenbankbackups kann man z.B. mittels phpmybackuppro (OpenSource) machen.

Ich hoffe, dass dieser Beitrag auch Anderen weiterhilft und bedanke mich nochmals für jedliche Hilfe von allen :-)

Gruß, Basti.

P.S.: Das ganze funktioniert natürlich nur auf Linux-/Unix-Systemen!

Noch einige Suchbegriffe: Backup Linux ssh shell cronjob nur bestimmte Dateien Dateitypen