Linux Tip: super-hurtig netværk fil kopi - 💡 Fix My Ideas

Linux Tip: super-hurtig netværk fil kopi

Linux Tip: super-hurtig netværk fil kopi


Forfatter: Ethan Holmes, 2019

Hvis du nogensinde har haft brug for at flytte en stor mappe, der indeholder mange filer fra en server til en anden, kan du have opdaget en situation, hvor kopieringsfrekvensen var betydeligt mindre, end hvad du ville forvente, at dit netværk kunne understøtte. Rsync gør et fantastisk arbejde med hurtigt at synkronisere to relativt lignende katalogstrukturer, men den oprindelige klon kan tage et stykke tid, især da filtællingen stiger.

Problemet er, at der er en vis mængde per-file-overhead, når du bruger scp eller rsync til at kopiere filer fra en maskine til den anden. Dette er ikke et problem under de fleste omstændigheder, men hvis du forsøger at duplikere titusindvis af filer (tænk, server eller database backup), kan denne per-file overhead virkelig tilføje op. Løsningen er at kopiere filerne over i en enkelt stream, hvilket normalt betyder, at de tarver dem op på en server, kopierer tarballen, og derefter ikke går på destinationen. Medmindre du er under 50% diskudnyttelse på kildeserveren, kan det medføre, at du løbe tør for plads.

Brett Jones har en alternativ løsning, der bruger den praktiske netcat utility:

Efter at have ryddet op 10 GBs logfiler blev vi tilbage med hundreder af tusindvis af små filer, der skulle sænke os. Vi kunne ikke tarball filen på grund af manglende plads på kildeserveren. Jeg begyndte at søge rundt og fundet dette nifty tip, der tager vores kryptering og streams alle filerne som en stor fil:

Dette kræver netcat på begge servere.

Destinationsboks: nc -l -p 2342 | tjære -C / target / dir -xzf - Source box: tar -cz / source / dir | nc Target_Box 2342

Dette får kildemaskinen til at tage filerne op og sende dem over netcat-røret, hvor de udvindes på destinationsmaskinen, alt sammen uden forhandling eller ikke nødvendigt diskplads. Det er også hurtigere end den sædvanlige scp eller rsync over scp, fordi der ikke er nogen kryptering overhead. Hvis du befinder dig på et lokalt beskyttet netværk, vil dette fungere meget bedre, selv for store enkelt-fil kopier.

Hvis du er på et ubeskyttet netværk, kan du dog stadig have dine data krypteret under transit. Du kan udføre den samme opgave over ssh:

Kør dette på destinationsmaskinen: cd / vej / til / uddrag / til / ssh [email protected] 'tar -cz -C / source / path / *' | tjære-zxv

Denne kommando udsteder tar-kommandoen på tværs af netværket på kildemaskinen, hvilket forårsager, at tjærens stdout sendes tilbage via netværket. Dette ledes derefter til stdin på destinationsmaskinen, og filerne vises magisk i den mappe, du er i øjeblikket.

Ssh-ruten er lidt langsommere end at bruge netcat på grund af kryptering overhead, men det er stadig langt hurtigere end at scribe filerne individuelt. Det har også den ekstra fordel, at det muligvis er kompatibelt med Windows-servere, forudsat at du har nogle få unix-værktøjer som ssh og tjære installeret på din Windows-server (ved hjælp af de cygwin-linkede binære filer, der er tilgængelige).

Hurtig fil kopi - Linux!



Du Kan Være Interesseret

Værktøjsanmeldelse: DT-2234C + Digital Lasertæller

Værktøjsanmeldelse: DT-2234C + Digital Lasertæller


Gør det i Kina: Sådan Spot en god fabrik

Gør det i Kina: Sådan Spot en god fabrik


Dine kommentarer

Dine kommentarer


5, 4, 3, 2, 1 Ting om Ian Langohr

5, 4, 3, 2, 1 Ting om Ian Langohr






Seneste Indlæg