Benutzer-Werkzeuge

Webseiten-Werkzeuge


kopieren_auf_verschiedene_weisen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
kopieren_auf_verschiedene_weisen [2019-06-24 09:25:20] – [rsync] manfredkopieren_auf_verschiedene_weisen [2019-06-24 09:26:19] (aktuell) – [rsync] manfred
Zeile 1: Zeile 1:
 +====== kopieren auf verschiedene Weisen ======
 +
 +siehe auch: [[Hilfsprogramme des Dateisystems]]
 +
 +
 +===== 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!)
 +
 +einfach mal den Inhalt von "''/var/lib/mysql/''" in das Verzeichnis "''/mnt/''" kopieren:
 +  # rsync -av /var/lib/mysql/ /mnt/
 +
 +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 -alzrvpoge ssh --delete www admin@192.168.8.2:"/sik"
 +
 +  # rsync -alzrvpoge "ssh -c blowfish -2" --delete www root@192.168.8.2:"/sik"
 +
 +  # rsync -aOSWrtlvogze "ssh -c blowfish -2" --compress-level=1 --numeric-ids --delete --chmod=Dug+rwx,Do+rx,Fug+rw,Fo+r www root@192.168.8.2:"/sik"
 +  # rsync -aOSWrtlvogze "ssh -c blowfish -2" --compress-level=1 --numeric-ids --delete --chmod=Dug+rwx,Do+rx,Fug+rw,Fo+r /sik/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
 +