kopieren auf verschiedene Weisen

kopieren eines Verzeichnisbaumes bei dem alle Flags unverändert bleiben sollen

In diesem Beispiel werden die Dateien und Unterverzeichnisse von “/DATENOLD“ nach “/DATENNEW“ kopiert, wobei alle Flags erhalten bleiben sollen!

1. mit „cp“ (symbolische Links bleiben erhalten):

# cp -PRp /DATENOLD /DATENNEW

2. mit „cpio“ (symbolische harte Verlinkungen bleiben erhalten):

# cd /DATENOLD
# find * -print | cpio -pdmv --sparse /DATENNEW

3. mit „tar“ (symbolische harte Verlinkungen bleiben erhalten):

# cd /DATENOLD
# tar -cf - . | tar xvpf - -C /DATENNEW

oder

# tar -cf - . | (cd /DATENNEW ; tar -xvpf -)

4. mit „pax“ (symbolische harte Verlinkungen bleiben erhalten):

# cd /DATENOLD
# pax -rw . /DATENNEW

oder mit Abfrage fuer jede einzelne Datei (interaktiv):

# pax -rw -i . /DATENNEW

Das folgende Script kann wie ein normaler "cp"-Befehl aufgerufen werden

#!/bin/sh
#---------------------------------------#
#  treecp  [Quell-Verz.]  [Ziel-Verz.]  #
#---------------------------------------#
find $1 -print | cpio -pdmv --sparse $2
#########################################

und folgendem Befehl:

# chmod 755 treecp

rsync

Der schnellste Weg zu syncronen Daten!

(Wichtig ist hier, ob „www“ oder „www/“ geschrieben wird! ohne “/“ ist das Verzeichnis gemeint und mit “/“ ist der Inhalt des Verzeichnisses gemeint!)

Der Inhalt des lokalen Verzeichnisses „www“ wird auf dem Rechner „192.168.8.2“ in das Verzeichnis “/sik“ abgelegt alle Dateien die auf dem Quellrechner nicht existieren werden auf dem Zielrechner geloescht.

# rsync -alz -e ssh --delete www/ admin@192.168.8.2:"/sik"

Das lokale Verzeichnis „www“ wird auf dem Rechner „192.168.8.2“ in das Verzeichnis “/sik“ als “/sik/www/“ abgelegt alle Dateien die auf dem Quellrechner nicht existieren werden auf dem Zielrechner geloescht.

# rsync -alz -e ssh -rlva --perms --owner --group --delete www admin@192.168.8.2:"/sik"
# rsync -alz -e "ssh -c blowfish -2" -rlva --perms --owner --group --delete www root@192.168.8.2:"/sik"

weitere Beispiele

CPIO

 (Es ist "DAS" universelle archivierprogramm unter Unix.)
 [Die Pfade können als absolut oder relativ angegeben werden.]
 CPIO kann mit dem Dateisystem nicht umgehen und benötigt dazu ein weiteres
 Programm wie z.B. "find". Es ist aber auch möglich eine Dateiliste, die
 mit FIND erstellt wurde zu verwenden.
 Soeine Dateiliste kann z.B. mit "find mnt > dateilistemitpfad.txt" erstellt und
 anschliessend reduziert oder ergänzt werden.
 Hier zeige ich nur das archivieren, unter Verwendung des
 neuen portablen Formates mit CRC-Pruefsumme zur Fehlerkorrektur.
 Soll ein TAR-Archiv erstellt werden, muss der Parameter "H newc"
 durch "H ustar" ersetzt werden.
 Dieses Archiv kann "gzip" etwas besser und bedeutend schneller packen
 als "bzip2"!
 archivieren:
 > echo "dateiname" | cpio -oH newc > archiv.crc
 oder
 > cpio -oH newc < dateinamenliste.txt > archiv.crc
 oder
 > find verzeichnis | cpio -oH newc > archiv.crc
 hier werden nur die Dateien archiviert, die "xyz" im Pfad enthalten:
 > find /DATEN -type f | grep -v 'xyz' | cpio -ovH crc > DATEN.crc
 entpacken (Mit absoluten Pfadnamen, soweit gespeichert!!!):
 > cpio -idmv < archiv.crc
 oder
 > cat archiv.crc | cpio -idmv
 entpacken (mit relativem Pfad):
 > cpio -idmv --no-absolute-filenames < archiv.crc
 archivieren + verpacken:
 > echo "dateiname" | cpio -oH newc | gzip -9 > archiv.crc.gz
 oder
 > cat dateinamenliste.txt | cpio -oH newc | gzip -9 > archiv.crc.gz
 oder
 > find verzeichnis | cpio -oH newc | gzip -9 > archiv.crc.gz
 CRC-Pruefsumme kontrollieren und Inhalt auflisten:
 > cat archiv.crc.gz | gzip | cpio -it --only-verify-crc
 > zcat archiv.crc.gz | cpio -it --only-verify-crc
 entpacken (Mit absoluten Pfadangaben, soweit gespeichert!!!):
 > cat archiv.crc.gz | gzip | cpio -idmv
 > zcat archiv.crc.gz | cpio -idmv
 entpacken (Mir relativem Pfadnamen.):
 > cat archiv.crc.gz | gzip | cpio -idmv --no-absolute-filenames
 > zcat archiv.crc.gz | cpio -idmv --no-absolute-filenames
 ENTPACKEN:
 cat DATEN.tgz | gunzip | cpio -idmv --no-absolute-filenames
 bzw.:
 cat DATEN.crc.gz | gzip | cpio -idmv --no-absolute-filenames
 oder (wenn es nicht im absoluten Pfad, sondern in ein Unterverzeichnis soll)
    $ cpio -idmv --no-absolute-filenames < DATEN.crc
 oder
    $ cat DATEN.crc.gz | gunzip | cpio -idmv --no-absolute-filenames
 bzw
    $ cat DATEN.tgz | gunzip | cpio -idmv --no-absolute-filenames

PAX

 (Es versteht die verschiedenen Formate von "cpio" und ist so leicht zu
 handhaben wie "tar", kann im Gegensatz zu "cpio" aber nicht relativ zum
 Pfad auspacken.)
 im TAR-GZ-kompatibelen Format:
    $ pax -wzf DATEN.tgz /DATEN
    Auflisten des Archivinhaltes:
    $ pax -zf DATEN.tgz
 im neuen portablen Format mit CRC-Pruefsumme zur Fehlerkorektur:
    $ pax -wzx sv4crc -f DATEN.crc.gz /DATEN
    Auflisten des Archivinhaltes:
    $ pax -zf DATEN.tgz
 verpacken in 699 MB grosse Archivteile:
 (Ab dem zweiten Archivteil muss der Archivname von Hand eingegeben werden!)
    $ pax -wx sv4crc  -B 699m -f DATEN.crc    [QUELLE]
    $ pax -wzx sv4crc -B 699m -f DATEN.crc.gz [QUELLE]
 INHALTSLISTE:
 pax -f  DATEN.crc
 pax -zf DATEN.crc.gz
 ENTPACKEN:
    $ pax -rp op  -f DATEN.crc
 oder
    $ pax -rzp op -f DATEN.crc.gz
 bzw
    $ pax -rzp op -f DATEN.tgz
 oder (wenn es nicht im absoluten Pfad, sondern in ein Unterverzeichnis soll)
    $ cpio -idmv --no-absolute-filenames < DATEN.crc
 oder
    $ cat DATEN.crc.gz | gunzip | cpio -idmv --no-absolute-filenames
 bzw
    $ cat DATEN.tgz | gunzip | cpio -idmv --no-absolute-filenames
 Es werden alle Dateien ausgepackt, die dem User "root" und der Gruppe "bin"
 angehoeren:
    $ pax -rz -pop -U root -G bin -f DATEN.tgz
 Wenn die User-ID's (mangels Rechte) nicht alle wieder hergestellt werden koennen
 (nur "root" kann alle User-ID's wider herstellen):
    $ pax -rz -pp -f DATEN.tgz
 Wenn die Flags nicht exakt wieder hergestellt werden muessen:
    $ pax -rzf DATEN.tgz
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki