Při spuštění rsync
v adresáři se spoustou souborů a adresářů na více úrovních můžeme odhadnout množství práce nebo čas na dokončení?
-
volba průběhu zobrazuje pouze průběh přenosu jednoho souboru, nikoli průběh přenosu všech souborů a adresářů ve zdrojovém adresáři.
-
Myslím, že jedním ze způsobů je podívat se na to, jaké adresáře
dosud přenesl, a porovnat to se zdrojem.Hodně mi pomůže, když budu znát pořadí souborů a adresářů v
, kterérsync
převede je.Myslím, že to může souviset s tím
rsync
spouští více vláken a co každé vlákno dělá?Nejsem si jistý, jaké pořadí volí, a můj předchozí odhad pořadí chleba jako prvního se nezdá správný (takže to přeškrtnu).
Přijatá odpověď:
Můžete vytvořit rsync
vytiskněte jeden řádek na soubor pomocí -i
a poté použijte pv -l
k hlášení průběhu na základě počtu řádků (ve skutečnosti počtu souborů).
Budete potřebovat pv
(prohlížeč potrubí):http://www.ivarch.com/programs/pv.shtml
rsync -ai sourcedir/ targetdir/ | pv -l -s filecount > logfile
K získání počtu souborů použijte následující příkaz:
find sourcedir | wc -l
Poznámka:Tento příkaz zobrazí informace o průběhu na základě počtu zkopírovaných souborů. To funguje nejlépe, pokud existuje mnoho malých souborů. Pokud je k dispozici pouze několik souborů, které jsou velké, nebudete se moc bavit.
Chcete-li zobrazit postup při aktualizaci (nebo porovnávání) existující kopie:
(další informace:Porovnejte adresáře, ale ne obsah souborů)
rsync -aii --delete sourcedir/ targetdir/ | pv -l -s filecount > logfile
Druhý -i
způsobí, že rsync vytiskne jeden řádek na soubor, i když jsou stejné.
Přidejte -n
porovnávat (ve skutečnosti nic kopírovat nebo mazat).
Vynechejte --delete
podle potřeby.
Tento příkaz vytiskne na obrazovku v reálném čase soubory, které se liší:
rsync -aii --delete sourcedir/ targetdir/ | pv -l -s filecount |
tee logfile | grep -v "^."
Výše uvedené příkazy fungují nejlépe, když existuje mnoho menších souborů. Pokud máte málo velkých souborů, pak by vám mohly pomoci některé sestavy o průběhu vestavěné v rsync. Viz manuálovou stránku rsync pro -P
nebo --progress
nebo --info=progress2
. Ale pozor:tyto možnosti nebudou dobře fungovat s pv
. Nebo jsem alespoň nezjistil jak.
Zde je hrubé řešení, jak vidět pokrok na základě velikosti:
- před kopírováním pomocí
df -h
si poznamenejte volné místo v cílovém oddílu . - poznamenejte si velikost zdrojového adresáře pomocí
du -sh
. - použijte
watch df -h
a sledujte, jak velikost roste.
Zjevně to funguje pouze při kopírování a ne při aktualizaci nebo porovnávání.