Scott Pack'in harika cevabı sayesinde (bunu daha önce ssh ile nasıl yapacağımı bilmiyordum), bu iyileştirmeyi önerebilirim ( bash
kabuğunuz varsa ). Bu paralel sıkıştırma, bir ilerleme göstergesi ekleyecek ve ağ bağlantısı boyunca bütünlüğü kontrol edecektir:
tar c file_list |
tee >(sha512sum >&2) |
pv -prab |
pigz -9 |
ssh [user@]remote_host '
gunzip |
tee >(sha512sum >&2) |
tar xC /directory/to/extract/to
'
pv
borunuz için güzel bir ilerleme görüntüleme programıdır ve pigz
CPU'nuzun varsayılan olarak sahip olduğu kadar çok iş parçacığı kullanan paralel bir gzip programıdır (8 max'a kadar inanıyorum). Sen ayar sıkıştırma seviyesi daha iyi bant genişliği ağ ile takas etmek CPU oranı uyacak şekilde yapabilirsiniz pxz -9e
ve pxz -d
size bant genişliği çok daha fazla CPU varsa. Sadece iki toplamın tamamlandığında eşleştiğini doğrulamanız gerekir.
Bu seçenek çok fazla miktarda veri ve yüksek gecikmeli ağlar için kullanışlıdır, ancak bağlantı kararsızsa ve düşerse çok yararlı olmaz. Bu gibi durumlarda, rsync muhtemelen devam edebildiği en iyi seçimdir.
Örnek çıktı:
6c1fe5a75cc0280709a794bdfd23d7b8b655f0bbb4c320e59729c5cd952b4b1f84861b52d1eddb601259e78249d3e6618f8a1edbd20b281d6cd15f80c8593c3e - ]
176MiB [9.36MiB/s] [9.36MiB/s] [ <=> ]
6c1fe5a75cc0280709a794bdfd23d7b8b655f0bbb4c320e59729c5cd952b4b1f84861b52d1eddb601259e78249d3e6618f8a1edbd20b281d6cd15f80c8593c3e -
Blok cihazlar için:
dd if=/dev/src_device bs=1024k |
tee >(sha512sum >&2) |
pv -prab |
pigz -9 |
ssh [user@]remote_host '
gunzip |
tee >(sha512sum >&2) |
dd of=/dev/src_device bs=1024k
'
Açıkçası, count =, skip =, seek =, vb. İle aynı boyutta veya sınırda olduklarından emin olun.
Dosya sistemlerini bu şekilde kopyaladığımda, çoğu zaman ilk önce dd if=/dev/zero of=/thefs/zero.dat bs=64k && sync && rm /thefs/zero.dat && umount /thefs
xfer'i hızlandıran, kullanılmayan alanın sıfırını alırım.