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