Kirjoittaja Aihe: Kopioinnin tarkistus? [RATKAISTU]  (Luettu 2035 kertaa)

jekku

  • Käyttäjä
  • Viestejä: 2457
    • Profiili
Kopioinnin tarkistus? [RATKAISTU]
« : 12.12.11 - klo:12.43 »
Onko diff riittävän luotettava tarkistamaan onko kopiointi mennyt asiallisesti?

Arvelin korvata yhdessä skriptissä mv:n komennolla cp -pu ja perään diffillä vertailu.
Mietin josko diffin paluuarvo 0 olisi riittävä vahvistus ja voin sen jälkeen nakata lähdehakemiston tyhjäksi (tai tässä tapauksessa tyystin pois, rm -fR lähdehakemisto

Tuollaista tapaa mietin:
cp -pu lähdehakemisto kohdehakemisto && rm -fR lähdehakemisto

Missä kohtaa ammun itseäni jalkaan?

Edit:
siis tietenkin:
cp -pu lähdehakemisto kohdehakemisto
diff lähdehakemisto kohdehakemisto && rm -fR lähdehakemisto
« Viimeksi muokattu: 13.12.11 - klo:05.03 kirjoittanut jekku »

odysseus

  • Käyttäjä
  • Viestejä: 367
    • Profiili
Vs: Kopioinnin tarkistus?
« Vastaus #1 : 12.12.11 - klo:17.45 »
Ottamatta kantaa diff:n varmuuteen, niin silti kuulostaa huonolta tuo cp.

Ainakin jos kopioit koneiden välillä, niin on montakin vaaraa matkassa. Yksi suurinpia on se, että tiedostojen päivämäärät (kohde saa kopioinnin aikaleiman) ja oikeudet ei välttämättä mene kuntoon.

Siispä ehdotan tekemään tar+gz paketin, jossa verify ja sitten kopioimaan sen ja sitten toisessa päässä purkamaan paketin jos purku on tarpeen.

MD5 tarkiste kopioitujen pakettien välillä lienee sitten riittävä varmiste.

EDIT: Niin ja tietty rsync on myös hyvä väline varmuuskopiointeihin... Laitoin tänne jo aikaisemmin linkin hyvään ohjeeseen:

http://www.mikerubel.org/computers/rsync_snapshots
« Viimeksi muokattu: 12.12.11 - klo:17.57 kirjoittanut odysseus »

Ganymedes

  • Käyttäjä
  • Viestejä: 3515
    • Profiili
Vs: Kopioinnin tarkistus?
« Vastaus #2 : 12.12.11 - klo:20.32 »
Ei kannata käyttää epävarmoja ja kertakäyttöisiä komentoja ollenkaan, jos kopioinnit tehdään epävarman yhteyden yli tai jos kopion pitää varmasti olla oikea (=eli kopioinnin onnistumista ei voi muutoin varmentaa välittömästi).

Käytä rsync :iä oikeilla vivuilla, niin tulos varmistetaan sisäisesti.

"Kertakäyttöisyydellä" tarkoitan sitä, että jos kopiointi epäonnistuu, niin se epäonnistuu. Kunnollisissa kopiointikomennoissa voi a) määrätä kuinka yritetään uudelleen, b) sen voi ajaa uudelleen täsmälleen samalla tavalla, jolloin ainoastaan epäonnistuneet yritetään kopioida uudelleen, mutta loputkin tarkistetaan.

Keskustelu on sama kuin Windowsissa. Ratkaisu siellä on robocopy.exe. Windowsissa on sekin paha juttu, että monet kopioinnit voivat epäonnistua ilman, että käyttäjälle kerrotaan siitä mitään. Käytännössä näin voi tapahtua Linuxissakin (jos esim. kopiota suorittava kone menee alas).

jekku

  • Käyttäjä
  • Viestejä: 2457
    • Profiili
Vs: Kopioinnin tarkistus?
« Vastaus #3 : 12.12.11 - klo:21.11 »
---
Käytä rsync :iä oikeilla vivuilla, niin tulos varmistetaan sisäisesti.
---

En muuten keksinyt millä vivulla rsyncille kerrotaan että "jos onnistui niin poista lähdehakemisto, juurineen ja latvoineen".
Mutta hatunnosto softan ylläpitäjille - melkein parituhatta riviä manuaalia :)



Ganymedes

  • Käyttäjä
  • Viestejä: 3515
    • Profiili
Vs: Kopioinnin tarkistus?
« Vastaus #4 : 12.12.11 - klo:21.21 »
Komento:

man rsync | grep move

kertoo, että vivulla "--remove-source-files"

En tunne tuota optiota henk. koht. - tunnen tuolla yllämainitun robocopy:n paremmin  :o

EDIT: OK, mutta tuohan ei tuhonnutkaan hakemistoja, joten tyhjät hakemistot jäävät ... en tiedä suoralta kädeltä.


Edit2: Tuossa on asiaan liittyvää keskustelua jonka väitetään toimivan:

http://ubuntuforums.org/showthread.php?p=6833277
« Viimeksi muokattu: 12.12.11 - klo:21.30 kirjoittanut Ganymedes »

juyli

  • Vieras
Vs: Kopioinnin tarkistus?
« Vastaus #5 : 12.12.11 - klo:21.25 »
Ottamatta kantaa diff:n varmuuteen, niin silti kuulostaa huonolta tuo cp.
Nimenomaan. Cp ei ole tarkoitettu ko. kopiointeihin. Tosin man cp kertonee monista toimivista vipusista ko. komennon kanssa. Cp -a tai vielä jollakin lisämääreellä kopioi ihan mukavasti ...
Tar on perinteinen tapa varmuuskopiointiin (mm. varmuuskopiontinauhoille ;) ). Ja tar taipuu moniin skripteihin erinomaisesti.
Odesseuksen ja Ganymedes:in mainitsema rsync lienee tarkoituksiisi jo valmis työkalu.

juyli

  • Vieras
Vs: Kopioinnin tarkistus?
« Vastaus #6 : 12.12.11 - klo:21.29 »
En muuten keksinyt millä vivulla rsyncille kerrotaan että "jos onnistui niin poista lähdehakemisto, juurineen ja latvoineen".
Mutta hatunnosto softan ylläpitäjille - melkein parituhatta riviä manuaalia :)

Jo lähtökohtainen mv -komentosi ei poista alkuperäistä, jos kopionti ei onnistu.
Se, että komento on monipuolinen, ja manuaalisivuja luettavaksi enemmänkin, ei tee sovellusta turhaksi ;)
Näe vaiva opetella softa, ja hyödynnä sitä.

jekku

  • Käyttäjä
  • Viestejä: 2457
    • Profiili
Vs: Kopioinnin tarkistus?
« Vastaus #7 : 13.12.11 - klo:05.02 »
En muuten keksinyt millä vivulla rsyncille kerrotaan että "jos onnistui niin poista lähdehakemisto, juurineen ja latvoineen".
Mutta hatunnosto softan ylläpitäjille - melkein parituhatta riviä manuaalia :)

Jo lähtökohtainen mv -komentosi ei poista alkuperäistä, jos kopionti ei onnistu.
Se, että komento on monipuolinen, ja manuaalisivuja luettavaksi enemmänkin, ei tee sovellusta turhaksi ;)
Näe vaiva opetella softa, ja hyödynnä sitä.

Ahaa, eli se mv tarkistaa jo itse "miten meni".
Joten suotta pähkäilin, taas.

Jajuu, tuo rsync on käytössä, tosin vain koneiden välillä, ei paikallisesti.

Eiköhän tämä ollut tässä.