Muszę skopiować bardzo duży katalog (tutaj mówię w terabajtach) i chcę monitorować postęp.
Odkryłem, że pv
jest to przydatne narzędzie, ale jak mogę go używać do rekurencyjnego kopiowania katalogów? ( pv src > dst
nie działa, ponieważ są katalogami)
PS: działający na systemie OS X Mountain Lion pv
został zainstalowany z portów Mac
Można użyć
tar
albopax
albocpio
:źródło
v
dotar
polecenia, aby zobaczyć nazwy plików.tar cf -
wysyła strumień zawierający pliki i ich metadane, który jest przekazywany przez potok do pv, który przekazuje go nietknięty drugiemutar
podczas drukowania wskazania postępu, a drugitar
wyodrębnia dane z tego strumienia. Wszystkie trzy polecenia działają jednocześnie i przetwarzają dane, tak jak są, nic nie jest przechowywane na dysku, nic nie jest przechowywane w pamięci oprócz buforów potoków i wewnętrznych buforów poleceń, które wynoszą zaledwie kilka kilobajtów.pv
nie ma sposobu, aby dowiedzieć się, ile danych jest do przesłania. Jeśli masz oszacowanie tej kwoty, możesz przekazać ją do niej z-s
opcją (GNUdu -sb src
dałoby ci dobre przybliżenie, jeśli pliki są wystarczająco duże)Smoła.
Przykład:
źródło
Oto niektóre polecenia do kopiowania katalogów z informacjami o postępie.
Jeśli jest wiele małych plików:
Spowoduje to zgłoszenie postępów na podstawie liczby skopiowanych plików.
Możesz przekierować do,
/dev/null
jeśli nie potrzebujeszlogfile
.Użyj następującego polecenia, aby uzyskać
filecount
:Jeśli jest kilka dużych plików:
Spowoduje to zgłoszenie postępu na podstawie skopiowanych bajtów.
targetdir
musi istnieć.Użyj następującego polecenia, aby uzyskać
size
:Jeśli chcesz użyć rsync:
Zdobądź
filecount
jak pokazano powyżej.Jeśli kopiujesz w tym samym systemie,
rsync -a
jest praktycznie taki sam jakcp -a
. Zalety rsync polegają na kopiowaniu przez sieć lub aktualizowaniu (lub porównywaniu) poprzedniej kopii.Zobacz tutaj po więcej szczegółów:
źródło
Możesz wykonać
du -b /directory/
zarówno na źródle, jak i miejscu docelowym, podczas gdy normalne polecenie kopiowania jest w toku, i porównać oba. Jest to tak samo skuteczne i nie spowalnia procesu kopiowania, przepychając go przez potok.źródło
źródło