Directory tree ohne files archivieren?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
monotek
Beiträge: 227
Registriert: 20.07.2004 15:25:11
Wohnort: dresden

Directory tree ohne files archivieren?

Beitrag von monotek » 14.05.2009 21:23:15

Ich will gern die ersten 2 Level eines Verzeichnisbaums eines FTP Servers sichern, ohne jedoch die Dateien mit zu sichern.

Mit TAR und Rsync bin ich leider nicht zum Ziel gekommen.

Als erstes alles zu sichern und dann Files zu löschen geht nicht, da dazu nicht genug Speicherplatz zur Verfügung steht und das auch zu lange dauern würde.

Einzige Möglichkeit die mir derzeit einfällt ist, Verzeichnisse und Berechtigungen in ein Textfile zu sichern.

Das macht aber die Wiederherstellung unnötig kompliziert.

Hat jemand noch ne andere Idee?

Danke schon mal im Voraus...

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Directory tree ohne files archivieren?

Beitrag von rendegast » 15.05.2009 04:09:33

sowas

Code: Alles auswählen

find from-dir/ -maxdepth 2 -type d -print0 | xargs -0 mkdir -p


In xutils-dev gibt es /usr/bin/lndir

Code: Alles auswählen

lndir  from-dir  to-dir
find  to-dir/  -type l  -exec rm {} \;
# dann aber noch
find  to-dir/  -type d  -mindepth 3  -exec rm {} \;
xcopy auf linux ist leider was anderes als xcopy auf windows, aber mit wine vielleicht:

Code: Alles auswählen

wine  [cmd -c]  xcopy [/S] /E /T  from-dir  to-dir
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

yeti

Re: Directory tree ohne files archivieren?

Beitrag von yeti » 15.05.2009 08:59:42

monotek hat geschrieben:Einzige Möglichkeit die mir derzeit einfällt ist, Verzeichnisse und Berechtigungen in ein Textfile zu sichern.
Das macht aber die Wiederherstellung unnötig kompliziert.
So abwegig scheint mir die Textfile-Idee dabei nicht:

Code: Alles auswählen

find /home/ftp -type d -maxdepth 2 -printf 'install -d -m %m -o %u -g %g %p\n'

Benutzeravatar
monotek
Beiträge: 227
Registriert: 20.07.2004 15:25:11
Wohnort: dresden

Re: Directory tree ohne files archivieren?

Beitrag von monotek » 15.05.2009 10:35:50

rendegast hat geschrieben:sowas

Code: Alles auswählen

find from-dir/ -maxdepth 2 -type d -print0 | xargs -0 mkdir -p
Danke für deine Antwort :-)

Ja, an einen ähnlichen find Befehl hatte ich auch schon gedacht, um mir besagtes Textfile zu erstellen.

Würde folgendes nicht das Selbe machen?

Code: Alles auswählen

find from-dir/ -maxdepth 2 -type d -exec mkdir -p /tmp{} \;
Wieso noch mal an xargs pipen?

Wahrscheinlich könnte man sich das mkdir auch ganz sparen, und mit dem find Befehl ne for Schleife befüllen, die dann mkdir, chwon und chmod für jedes Verzeichnis abarbeitet und letztendlich alles an tar übergeben...

Ich dachte vielleicht gibts noch ne anderer kurze und elegante Lösung (z.B. irgend eine tollen Parameter eines Programms, das ich noch nicht kenn), bevor ich mir die Arbeit mit dem Scripten mach...
rendegast hat geschrieben: In xutils-dev gibt es /usr/bin/lndir

Code: Alles auswählen

lndir  from-dir  to-dir
find  to-dir/  -type l  -exec rm {} \;
# dann aber noch
find  to-dir/  -type d  -mindepth 3  -exec rm {} \;
xcopy auf linux ist leider was anderes als xcopy auf windows, aber mit wine vielleicht:

Code: Alles auswählen

wine  [cmd -c]  xcopy [/S] /E /T  from-dir  to-dir
Wine und xutils-dev will ich mir nicht erst installieren.

Ich habe gehofft es mit Boardmitteln zu schaffen.
yeti hat geschrieben:
monotek hat geschrieben:Einzige Möglichkeit die mir derzeit einfällt ist, Verzeichnisse und Berechtigungen in ein Textfile zu sichern.
Das macht aber die Wiederherstellung unnötig kompliziert.
So abwegig scheint mir die Textfile-Idee dabei nicht:

Code: Alles auswählen

find /home/ftp -type d -maxdepth 2 -printf 'install -d -m %m -o %u -g %g %p\n'
Das ist natürlich auch schick. Wusste noch gar nicht, dass ich mir so einfach die Verzeichnissrechte und User holen kann. Hätte bis jetzt umständlich alles mit ls | awk geholt :-)

yeti

Re: Directory tree ohne files archivieren?

Beitrag von yeti » 15.05.2009 11:10:04

monotek hat geschrieben:
yeti hat geschrieben:So abwegig scheint mir die Textfile-Idee dabei nicht:

Code: Alles auswählen

find /home/ftp -type d -maxdepth 2 -printf 'install -d -m %m -o %u -g %g %p\n'
Das ist natürlich auch schick. Wusste noch gar nicht, dass ich mir so einfach die Verzeichnissrechte und User holen kann. Hätte bis jetzt umständlich alles mit ls | awk geholt :-)
...im "richtigen" Unix würde man dafür eine Kombination von find und stat bemühen. Auch nicht wirklich schlimmer...
...muß man aber beim Übertragen der Skripte auf z.B. die BSDs im Hinterkopf behalten, denn da ist find noch schlank und ohne quasi-integriertes stat...

Ich find' die überfeatureten GNUtilities manchmal geradezu GNUnsinnig... aber das wär mal 'n anderen Thread wert...

Benutzeravatar
monotek
Beiträge: 227
Registriert: 20.07.2004 15:25:11
Wohnort: dresden

Re: Directory tree ohne files archivieren?

Beitrag von monotek » 15.05.2009 11:31:36

Die Lösung hab ich nun letztendlich auch verwendet.

Der install Befehl war mir auch neu. Schreib nun einfach die Ausgabe in ein install.sh Script und fertig is der Lack.

Danke noch mal dafür. Ich glaub das (find -printf / install) wird mir auch in Zukunft noch sehr nützlich sein.

Vor allem weil ich mich vor Kurzem noch geärgert habe, dass ich mkdir nicht gleich User und Reche mit übergeben kann.

:hail: :hail: :hail:

Antworten