Vraag ga door met het kopiëren van Linux


Hoe hervat ik een kopie van een groot bestand in linux? Ik heb een enorm bestand (gigabyes op een server) gedeeltelijk naar een netwerkstation gekopieerd, en het heeft lang geduurd en het was grotendeels klaar voordat de kopieerbewerking stopte vanwege een netwerkprobleem dat nu is verholpen. Hoe hervat ik de bestandskopie. Ik wil geen inefficiënt script en ecp werkte niet (het lijkt niet te werken voor grote bestanden).


8
2017-11-25 04:05


oorsprong




antwoorden:


ik zou proberen rsync -a /from/file /dest/file.


5
2017-11-25 04:19



en terwijl we het over rsync hebben, merk op dat je direct naar elke externe machine [ondersteunende SSH] kunt kopiëren met rsync -az -e ssh / from / file user@dest.ation: / full / dest / path - Mikeage
Wauw. zo rsync draaien zonder opties zal / dest / file verwijderen en het hele ding opnieuw verzenden. Hoe is dit gestemd? - Justin
Oeps. Toegevoegd -a. Bedankt. - Gonzalo
Hoe helpt het om bestandskenmerken te bewaren (-a)? Moet dit worden gedaan? - Malvineous


Als u weet dat u alleen aan het lokale bestand moet toevoegen en rsync niet wilt gebruiken (wat mogelijk lange tijd het berekenen van controlesommen zou kunnen vergen), kunt u krullen gebruiken. Bijvoorbeeld, als u een groot bestand op een langzaam verwijderbare USB-stick hebt gemonteerd op /media/CORSAIR/somefile.dat en slechts de helft daarvan bevindt zich in de huidige map om te hervatten:

curl -C - -O "file:///media/CORSAIR/somefile.dat"


3
2017-07-22 05:04



Bedankt voor de tip, ik moest deze tip gebruiken omdat ik vanaf een Windows SMB-server kopieerde (dus geen rsync) wanneer de langzame verbinding was verloren en ik de 500 MB vanaf het begin niet wilde downloaden. - MiKy


Ja rsync is de juiste keuze. Voor mij hebben we 100 + GB-gegevens over rsync + ssh overgedragen. Als u op zoek bent naar een echte back-up, zorg er dan voor dat u de -a (archief) optie om bestandskenmerken te behouden (tijden, eigenaars, permanenten, etc.)

host1> rsync -aP file user@host2:/path/to/new/dir/

Het is ook handig voor het kopiëren van grote bestanden die in de loop van een migratie kunnen veranderen. Jij kan voorbelasting de gegevens naar de bestemming en zodra ze klaar zijn voor definitieve kopie, doe het opnieuw, maar slechts voor een fractie van de tijd. U kunt besparen op werkelijke downtime door rsync te gebruiken voor alle mogelijkheden.

Postscriptum Gebruik makend van v (uitgebreid) kan een overdracht van veel bestanden vertragen.


2
2017-11-25 20:42





Het commando dat je wilt is zoiets als

rsync -v --append /path/to/afile /mnt/server/dest/afile

tenzij je via ssh toegang kunt krijgen tot de server en rsync op die manier kunt uitvoeren, in dat geval is het commando FlyingFish het beste.


2
2018-02-23 12:20





rsync is alleen goed als je rsync hebt op de doelserver. In dat geval is het inderdaad de beste oplossing.

Maar niet anders. Omdat het de bedoeling van rsync is om alleen gewijzigde delen in grote bestanden te kopiëren, gaat het ervan uit dat deze gewijzigde delen zich overal in het bestand kunnen bevinden. Dit betekent dat het alle blokken zal controleren die al zijn gekopieerd. Als je geen rsync hebt op de externe locatie, begint je lokale rsync met het teruglezen van alles wat al is overgebracht.

Als uw bronapparaat een web- of ftp-server heeft, kunt u wget van de doelserver gebruiken met de optie "- Vervolg". (of krul met de optie "- vervolg op [- | grootte]").

Als uw doelcomputer een FTP-server heeft, kunt u krullen op de broncomputer gebruiken met de optie -append.

Als laatste redmiddel kunt u dd gebruiken met de argumenten "bs =" (blokgrootte), "skip =" en "seek =". Bijvoorbeeld:

Laten we aannemen dat je 2048 byte-blokken kunt gebruiken. Als uw doelbestand momenteel 2'048'000'000 bytes (2 GB) is, is dat 1'000'000 blokken van 2048 bytes. Als u de rest van uw bronbestand aan de bestemming wilt toevoegen, kunt u dit doen

dd if = source_file of = destination_file bs = 2048 skip = 1000000 seek = 1000000

U kunt mogelijk een grotere blokgrootte gebruiken om de overdrachtsnelheid te verbeteren. Vergeet niet om de blokgrootte op te geven met bs = en dat de waarde die wordt gegeven om te springen en te zoeken zich in blokken bevindt, niet in bytes.


0
2018-02-23 10:27



Wat je zei over rsync is fout. man rsync, lees wat de --append optie doet. - Justin