kopieren_auf_verschiedene_weisen
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| kopieren_auf_verschiedene_weisen [2019-06-24 09:25:20] – [rsync] manfred | kopieren_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 "/ | ||
| + | nach "/ | ||
| + | |||
| + | 1. mit " | ||
| + | # cp -PRp /DATENOLD /DATENNEW | ||
| + | |||
| + | |||
| + | 2. mit " | ||
| + | # cd /DATENOLD | ||
| + | # find * -print | cpio -pdmv --sparse /DATENNEW | ||
| + | |||
| + | |||
| + | 3. mit " | ||
| + | # cd /DATENOLD | ||
| + | # tar -cf - . | tar xvpf - -C /DATENNEW | ||
| + | oder | ||
| + | # tar -cf - . | (cd /DATENNEW ; tar -xvpf -) | ||
| + | |||
| + | |||
| + | 4. mit " | ||
| + | # cd /DATENOLD | ||
| + | # pax -rw . /DATENNEW | ||
| + | oder mit Abfrage fuer jede einzelne Datei (interaktiv): | ||
| + | # pax -rw -i . /DATENNEW | ||
| + | |||
| + | |||
| + | ==== Das folgende Script kann wie ein normaler " | ||
| + | |||
| + | #!/bin/sh | ||
| + | # | ||
| + | # treecp | ||
| + | # | ||
| + | find $1 -print | cpio -pdmv --sparse $2 | ||
| + | ######################################### | ||
| + | |||
| + | |||
| + | und folgendem Befehl: | ||
| + | # chmod 755 treecp | ||
| + | |||
| + | |||
| + | ==== rsync ==== | ||
| + | |||
| + | Der schnellste Weg zu syncronen Daten! | ||
| + | |||
| + | (Wichtig ist hier, ob " | ||
| + | ohne "/" | ||
| + | Verzeichnisses gemeint!) | ||
| + | |||
| + | einfach mal den Inhalt von "''/ | ||
| + | # rsync -av / | ||
| + | |||
| + | Der Inhalt des lokalen Verzeichnisses "'' | ||
| + | in das Verzeichnis "''/ | ||
| + | alle Dateien die auf dem Quellrechner nicht existieren | ||
| + | werden auf dem Zielrechner geloescht. | ||
| + | |||
| + | # rsync -alz -e ssh --delete www/ admin@192.168.8.2:"/ | ||
| + | |||
| + | Das lokale Verzeichnis "'' | ||
| + | Verzeichnis "''/ | ||
| + | alle Dateien die auf dem Quellrechner nicht existieren | ||
| + | werden auf dem Zielrechner geloescht. | ||
| + | |||
| + | # rsync -alzrvpoge ssh --delete www admin@192.168.8.2:"/ | ||
| + | |||
| + | # rsync -alzrvpoge "ssh -c blowfish -2" --delete www root@192.168.8.2:"/ | ||
| + | |||
| + | # rsync -aOSWrtlvogze "ssh -c blowfish -2" --compress-level=1 --numeric-ids --delete --chmod=Dug+rwx, | ||
| + | # rsync -aOSWrtlvogze "ssh -c blowfish -2" --compress-level=1 --numeric-ids --delete --chmod=Dug+rwx, | ||
| + | |||
| + | |||
| + | ===== weitere Beispiele ===== | ||
| + | |||
| + | |||
| + | ==== CPIO ==== | ||
| + | |||
| + | (Es ist " | ||
| + | [Die Pfade können als absolut oder relativ angegeben werden.] | ||
| + | CPIO kann mit dem Dateisystem nicht umgehen und benötigt dazu ein weiteres | ||
| + | | ||
| + | mit FIND erstellt wurde zu verwenden. | ||
| + | | ||
| + | | ||
| + | | ||
| + | Hier zeige ich nur das archivieren, | ||
| + | neuen portablen Formates mit CRC-Pruefsumme zur Fehlerkorrektur. | ||
| + | Soll ein TAR-Archiv erstellt werden, muss der Parameter "H newc" | ||
| + | durch "H ustar" ersetzt werden. | ||
| + | | ||
| + | | ||
| + | als " | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | > echo " | ||
| + | oder | ||
| + | > cpio -oH newc < dateinamenliste.txt > archiv.crc | ||
| + | oder | ||
| + | > find verzeichnis | cpio -oH newc > archiv.crc | ||
| + | | ||
| + | hier werden nur die Dateien archiviert, die " | ||
| + | > find /DATEN -type f | grep -v ' | ||
| + | | ||
| + | | ||
| + | | ||
| + | > cpio -idmv < archiv.crc | ||
| + | oder | ||
| + | > cat archiv.crc | cpio -idmv | ||
| + | | ||
| + | | ||
| + | > cpio -idmv --no-absolute-filenames < archiv.crc | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | > echo " | ||
| + | oder | ||
| + | > cat dateinamenliste.txt | cpio -oH newc | gzip -9 > archiv.crc.gz | ||
| + | oder | ||
| + | > find verzeichnis | cpio -oH newc | gzip -9 > archiv.crc.gz | ||
| + | | ||
| + | | ||
| + | | ||
| + | > cat archiv.crc.gz | gzip | cpio -it --only-verify-crc | ||
| + | > zcat archiv.crc.gz | cpio -it --only-verify-crc | ||
| + | | ||
| + | | ||
| + | | ||
| + | > cat archiv.crc.gz | gzip | cpio -idmv | ||
| + | > zcat archiv.crc.gz | cpio -idmv | ||
| + | | ||
| + | | ||
| + | | ||
| + | > cat archiv.crc.gz | gzip | cpio -idmv --no-absolute-filenames | ||
| + | > zcat archiv.crc.gz | cpio -idmv --no-absolute-filenames | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | 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 " | ||
| + | | ||
| + | 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 | ||
| + | | ||
| + | | ||
| + | (Ab dem zweiten Archivteil muss der Archivname von Hand eingegeben werden!) | ||
| + | $ pax -wx sv4crc | ||
| + | $ pax -wzx sv4crc -B 699m -f DATEN.crc.gz [QUELLE] | ||
| + | | ||
| + | | ||
| + | pax -f DATEN.crc | ||
| + | pax -zf DATEN.crc.gz | ||
| + | | ||
| + | | ||
| + | $ 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 " | ||
| + | | ||
| + | $ pax -rz -pop -U root -G bin -f DATEN.tgz | ||
| + | | ||
| + | Wenn die User-ID' | ||
| + | (nur " | ||
| + | $ pax -rz -pp -f DATEN.tgz | ||
| + | | ||
| + | Wenn die Flags nicht exakt wieder hergestellt werden muessen: | ||
| + | $ pax -rzf DATEN.tgz | ||
| + | |||
