Benutzer-Werkzeuge

Webseiten-Werkzeuge


edv:os:unix:shell:example:split

split

Wie teilt man Files (oder stdout) auf kleinere Portionen?

Wenn Sie eine große DB exportieren, oder ein TAR-Archiv Ihres Filesystems erstellen müssen, kann es oft zu Dateien führen, die größer als 2GB sind. Auf einigen UNIX-Filesystemen ist es die maximal mögliche Größe für die Dateien. Oder wenn Sie Ihre Software über das Internet übertragen müssen, ist es einfacher, kleinere TAR-Files hoch/runter zu laden. Für diese Aufgabe sind split und named pipes oft sehr nützlich.

1. Ein named pipe erzeugen:

mknod tar_pipe p

2. Der erste Prozeß (tar) schreibt (als Hintergrundprozeß) auf named pipe:

tar cvf tar_pipe <tar_directory> &

3. Der zweite Prozeß (split) liest aus dem named pipe und erzeugt mehrere kleine Portionen:

split -b 100k tar_pipe tar_split_

Das ergibt in etwa folgendes:

-rw-r--r-- 1 root root 102400 Apr 24 12:10 tar_split_aa
-rw-r--r-- 1 root root 102400 Apr 24 12:10 tar_split_ab
-rw-r--r-- 1 root root 102400 Apr 24 12:10 tar_split_ac
-rw-r--r-- 1 root root 102400 Apr 24 12:10 tar_split_ad
-rw-r--r-- 1 root root 102400 Apr 24 12:10 tar_split_ae
-rw-r--r-- 1 root root 102400 Apr 24 12:10 tar_split_af
-rw-r--r-- 1 root root 102400 Apr 24 12:10 tar_split_ag
-rw-r--r-- 1 root root 102400 Apr 24 12:10 tar_split_ah
-rw-r--r-- 1 root root 102400 Apr 24 12:10 tar_split_ai
-rw-r--r-- 1 root root 102400 Apr 24 12:10 tar_split_aj
-rw-r--r-- 1 root root 102400 Apr 24 12:10 tar_split_ak

4. Nach der Übertragung zum Zielhost werden alle Teile wieder zusammen geführt und der Inhalt von "tar_directory" wiederhergestellt:

cat tar_split_* | tar xvf -

Stand: 22.10.2009

EOF

edv/os/unix/shell/example/split.txt · Zuletzt geändert: 2020/01/11 01:23 von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki