GNU/Linux >> Znalost Linux >  >> Linux

Odhadnout čas nebo práci zbývající do dokončení pro Rsync?

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.

Související:Potřebujete aktivní omezení karet jQuery na jedné kartě v jednom stavu pomocí ovladače mvc5?

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í.


Linux
  1. Odstraňte soubory, ke kterým se v Linuxu po určitou dobu nepřistupovalo

  2. Nastavit Umask pro souborový systém připojený k Sshfs?

  3. Jak říci Rsync, aby uchoval časové razítko v souborech, když má zdrojový strom připojený bod?

  1. rsync N nejnovějších souborů v adresáři

  2. linuxové sloučení složek:rsync?

  3. Důvody, proč rsync nepřenáší všechny soubory?

  1. Jak fungují oprávnění k souborům pro uživatele root?

  2. Proč find -mtime nefunguje podle očekávání u souborů s různými časovými pásmy?

  3. nechte cronjob počkat na dokončení předchozí úlohy rsync