Jeffrey Cross
Jeffrey Cross

Linux Näpunäide: super-kiire võrgufailide koopia

Kui teil on kunagi olnud suur server, mis sisaldab palju faile ühelt serverilt teisele, võib tekkida olukord, kus kopeerimiskiirus oli oluliselt väiksem kui see, mida teie võrk võiks toetada. Rsync teeb fantastilise töö kahe suhteliselt sarnase kataloogistruktuuri sünkroonimiseks, kuid esialgne kloon võib kuluda üsna kaua, eriti kui failide arv suureneb.

Probleem seisneb selles, et scp või rsync abil on failide kopeerimiseks ühest seadmest teise kindel hulk faili kohta. See ei ole enamikus olukordades probleem, kuid kui üritate kümneid tuhandeid faile (mõelda, server või andmebaasi varundamine) kopeerida, võib see failisisene üldkulud tõesti kokku tõusta. Lahendus on failide kopeerimine ühesse voogusse, mis tavaliselt tähendab nende ühest serverist ülesvõtmist, tariifi kopeerimist ja seejärel sihtkoha tühistamist. Kui te pole allika serveris kasutanud alla 50% ketta, võib see põhjustada ruumi otsa.

Brett Jonesil on alternatiivne lahendus, mis kasutab kasulikku netcat-utiliiti:

Pärast 10 GB-i logifailide kustutamist jäi meid sadade tuhandete väikeste failide juurde, mis aeglustasid meid. Me ei saanud seda faili hankida, kuna allikaserveris puudub ruumi. Hakkasin ringi otsima ja leidsin selle nifty tipu, mis võtab meie krüpteeringu ja edastab kõik failid ühe suure failina:

See nõuab mõlemas serveris netcati.

Sihtkast: nc -l -p 2342 | tar -C / target / dir -xzf - Allikas: tar -cz / source / dir | nc Target_Box 2342

See põhjustab allika masina failide ülesvõtte ja saadab need üle netcat-toru, kus need kaevandatakse sihtmasinal, kõik ei sisalda failivahetust ega tarbetut kettaruumi. See on ka kiirem kui tavaline scp või rsync üle scp, sest puudub krüpteerimise üldkulud. Kui olete kohalikus kaitstud võrgus, toimib see isegi suurte ühekordsete koopiate puhul palju paremini.

Kui olete kaitsmata võrgus, võite siiski soovida, et teie andmed oleksid transiidis krüpteeritud. Saate teha sama ülesande kohta üle ssh:

Käivitage see sihtmasinas: cd / path / to / extract / to / ssh [email protected] “tar -cz -C / source / path / *” | tar-zxv

See käsk väljastab lähteseadmes võrgu kaudu tar-käsu, põhjustades tõrva stdouti saatmise tagasi võrku. Seejärel edastatakse see sihtmasinas olevale stdinile ja failid kuvatakse maagiliselt kataloogis, mida te praegu olete.

Ssh marsruut on veidi aeglasem kui netcati kasutamine tänu krüpteerimisele, kuid see on veel kiirem kui failide individuaalne skaneerimine. Samuti on see eeliseks, et see võib olla ühilduv Windowsi serveritega, eeldusel, et teil on mõni unix tööriist, nagu ssh ja tar installitud teie Windowsi serverisse (kasutades olemasolevaid cygwin seotud binaare).

Kiire faili kopeerimine - Linux!

Osa

Jätnud Kommentaari