Python-skripti paikallisille varmuuskopioille, joissa on rsync

Gnu / Linuxissa on erilaisia ​​ohjelmia varmuuskopion suorittamiseksi, mutta henkilökohtaisesti pidän yksinkertaisista asioista, kaukana graafisista käyttöliittymistä (joissa ei tietenkään ole mitään vikaa, mutta jos voin välttää sen käyttöä, vältän).
Rsync-komennossa on valtava varmuuskopioiden liittolainen, jonka unohdamme usein tehdä. Siinä on tarpeeksi vaihtoehtoja kopion tekemiseen, jossa on kaikki tarvittavat vaatimukset. tietokoneella 767784_640

Seuraava python-komentosarja tekee varmuuskopiot tätä tarkoitusta varten. Tulet huomaamaan, että se on erittäin yksinkertainen ja jopa niille, joilla ei ole aavistustakaan tästä kielestä, rivin lisääminen komentosarjalle uuden hakemiston synkronoimiseksi on välitöntä.
Koneessani käytän ulkoista kiintolevyä, jota olen kutsunut IOmega_HDD: ksi, tapauksessasi voit nimetä sen uudelleen komentosarjassa tapauksesi mukaan.
Toinen asia on lisätä tai poistaa hakemistoja kopiosta. Samassa komentosarjassa kuin kommenttirivi selitetään, miten se tehdään.
Tehtävän automatisoimiseksi voit lisätä crontabiin rivin, joka sisältää python-tulkin ja polun, johon haluat sijoittaa komentosarjan. Toivon, että siitä on sinulle hyötyä.

varoitus: wordpress-editori ei salli välilyöntiä rivin alussa, joten komentosarjan tarvittava sisennys on kadonnut, joten olen korvannut tyhjät tilat pisteillä (.), jotka sinun on poistettava editorilla ja korvattava välilyönneillä.

-------------------------------
# -*- coding: utf-8 -*-
import os
ruta_usuario=os.getcwd()
ruta_volumen="/media/Iomega_HDD" #Modificar según nombre de disco externo
directorio_destino=ruta_volumen + "/" + "RsyncBackup"
try:
....if os.path.exists(directorio_destino):
........pass
....else:
........os.mkdir(directorio_destino,0777)
....directorios_origen=[] ....rutas_directorios_origen=[] ....#Se añaden los directorios para sincronizar
....directorios_origen.append("Documentos")
....directorios_origen.append("Imágenes")
....directorios_origen.append("Descargas")
....#Añadir aquí otros directorios que se deseen sincronizar
....#o eliminar de las líneas anteriores los que no se deseen
....for rutas in directorios_origen:
....rutas_directorios_origen.append(ruta_usuario + "/" + rutas)
....for rutas in rutas_directorios_origen:
....print "Sincronizando " + rutas + " con " + directorio_destino
....os.system("rsync -ahv --progress" + " " + rutas + " " + directorio_destino)
....print "Proceso terminado"
except OSError:
print "Ha ocurrido un error ¿está el disco externo listo?"
except:
print "Ha ocurrido un error"

---------------------------


18 kommenttia, jätä omasi

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   Matias dijo

    Hei, kuinka voit?
    Pidin käsikirjoituksesta, hyvin yksinkertaisesta.
    Ei rikkomusta, tein joitain muutoksia, jotta se olisi yksinkertaisempi ja helppolukuisempi Python 2: n ja 3: n tukemisen lisäksi (tällä hetkellä sitä voidaan käyttää vain Python 2: ssa)

    Jätän sinulle linkin 2 versioon, jos olet kiinnostunut.
    http://linkode.org/1np9l2bi8IiD5oEkPIUQb5/Yfa4900cA76BpcTpcf4nG1

    1.    dantutrich dijo

      Upeat modit ja olen iloinen, että pidät käsikirjoituksesta

  2.   niphosio dijo

    Tarkoitusta arvostetaan, mutta tulos on tahmea ja makkara.
    4-vuotias veljentytärni pystyy tekemään älykkäämpiä ja konfiguroitavampia käsikirjoituksia kuin tämä peruna, jonka olet laittanut tänne.

    Muuten, koodin sisennys on väärä, tarkista silmukat ja en tarkoita hiuksia

    1.    dantutrich dijo

      Käsikirjoitus toimii täydellisesti, olen käyttänyt sitä pitkään, ja itse asiassa sen jakavien ihmisten lukumäärän vuoksi sen ei pitäisi olla niin huono kuin sanot. Ehkä sinun pitäisi soittaa veljentyttärellesi nähdäksesi, oletko laittanut kaiken oikein

    2.    tr dijo

      Hei, opi arvostamaan ja oikaisemaan kritisoinnin sijaan, jos kerskaat niin paljon.

      1.    dantutrich dijo

        Aivan tr, Matias on tehnyt hienoja muutoksia. Käsikirjoitusta voidaan varmasti parantaa, ja siitä on kyse yhteistyön maailmassa, ja näin Matias on ilmaissut sen. On sääli, että ihmiset ovat täällä täällä happamasta hyvää ilmapiiriä, jonka pitäisi vallita. Siellä he.

    3.    Abaddon s dijo

      Luuletko, että töykeä kritiikki on hyödyllinen ja että se ei lisää mitään komentosarjaan? PAREMPI ÄLÄ KIRJOITA VITTOKIRJOJA JA JAA SITÄ !!!!!!!

  3.   En tiedä dijo

    Tässä toinen versio: https://gist.github.com/Itsuki4/5acc3d03f3650719b88d
    Kommentoi virheitä, jotka minulla on, korjaan ne (olen nyt Windowsissa ja en voinut testata sitä)

  4.   Zetaka01 dijo

    No, käytän rsynciä suoraan komentosarjan kanssa ilman pythonia.
    Laitoin rivin jokaiselle lähde- ja kohdehakemistolle.
    Minulla on useita komentosarjoja laitteesta riippuen, johon kopioin, tapauksessani inkrementaalisesti.
    Esimerkiksi kopioidakseni kirjat 128 Mt: n USB-muistiin, joka on oletuksena asennettu
    / media / zetaka01 / Sandisk128 laitoin komentosarjaan LibrosAusb128.sh seuraavan rivin:

    rsync -av –delete / home / zetaka01 / Kirjat / media / zetaka01 / Sandisk128 /

    Jos kohdehakemistoa ei ole, se luo sen sinulle ja poistaa määränpäästä sen, mikä ei ole alkuperässä, tietysti rekursiivisesti.
    Tervehdys.

  5.   Zetaka01 dijo

    Ah, copy / paste –poistovirhe, kahdella väliviivalla.

    tervehdys

  6.   dantutrich dijo

    Haluatko luoda graafisen käyttöliittymän? Olen nähnyt Tkinterin ja Tixin mahdollisuudet, mutta Wx on ehkä parempi hakemistojen valinnan hallitsemiseksi

  7.   Zetaka01 dijo

    GTK: hen perustuva graafinen käyttöliittymä on jo olemassa, sitä kutsutaan grsynciksi.
    Jätän linkin Wikipediaan, https://en.wikipedia.org/wiki/Grsync
    Tervehdys.

  8.   fernando dijo

    Hei kaikki. Käsikirjoitus voi olla ihme tai yksinkertaisuus, en tiedä tai välitä, mutta asiat voidaan sanoa tuhannella tavalla ja kun ne voidaan sanoa hyvin, miksi sanoa ne väärin? Minun on sanottava, että olen ollut Linux-käyttäjä vuodesta 2008 lähtien, ja kaiken tämän ajan takia olen hidas oppimaan, ja minun on hyvin vaikea ymmärtää monia asioita, mukaan lukien komentosarjan suorittaminen (helppo tietää, mutta yksi ei anna enemmän). asentaa ohjelmia kääntämällä niitä jne. jne. Siksi, kun luin, että on olemassa versio, jolla on graafinen käyttöliittymä, olen etsinyt ja löytänyt tämän sivun, jossa he jopa antavat sinulle kaiken pureskeltavan. Jos kömpelö palvelin, jätän sen tänne Terveisiä ja kiitos ponnistelustasi.
    http://www.opbyte.it/grsync/download.html

    1.    dantutrich dijo

      fernando, ilman minkäänlaista katkeruutta ja jos et halua vastata, olen utelias miksi käytät Gnu / Linuxia. Kiitos ja terveisin

  9.   Zetaka01 dijo

    Graafinen käyttöliittymä on erittäin ystävällinen, mutta se ei anna sinulle vaihtoehtoja, jotka koko komento antaa sinulle.
    Ei myöskään ole tapaustani, että teen sen mitata, komentosarja, olipa se kuori tai python tai mitä haluat, antaa sinun ohjelmoida sen toimimaan milloin haluat.
    Ah, Linux-distrossasi pitäisi olla rsync ja grsync ilman ongelmia arkistoissa.
    Tervehdys.

  10.   Zetaka01 dijo

    Ah Fernando, jos olet käyttänyt linuxia vuodesta 2008 etkä tiedä kuinka suorittaa komentosarjaa, minulla ei ole sanoja.
    tervehdys

  11.   Gonzalo Martinez dijo

    Pa ovat kaikki järjestelmäsuunnittelijat täällä, jotka kritisoivat komentosarjaa, jonka joku tekee yhteistyössä, ja jos käytetään konsolia / komentosarjaa tai mitä tahansa?

    Kuinka paljon paskaa piereskellä Jumalan tähden.

    Olen hallinnoinut Linux-palvelimia kymmenen vuoden ajan, ja totuus on, että kaiken tekeminen skripteillä tapahtui sähköisesti, esimerkiksi Baculan hallinnoimiseksi, mieluummin käytän graafista käyttöliittymää kuin kuorta teeskentellessäni tärkeänä, mikä on todella rikosta .

    On oltava tuottavaa, jos joku tuntee olonsa mukavammaksi tehdä se käyttöliittymän kautta, hyvin hänelle, tärkeintä on tulos, ei miten teet sen.

    Edellisessä työssäni ohjain yrityksen IT-aluetta, ja vastuuhenkilöt pyysivät häntä tekemään jotain erityistä, olin kiinnostunut tuloksesta, hän ei sanonut «Määritä toinen vhost apachessa, käyttämällä vi: tä ilman väriä päätelaitteessa 30 × 20 ”, että hän tekee sen mukavimmaksi, jos kaveri halusi tehdä sen niin, asentamalla SFTP: n ja käyttämällä Windowsin muistilehteä tai rukoillen Isäämme, en välittänyt niin kauan kuin hän teki sen oikein.

    dandutrech, komentosarja täyttää tavoitteensa, mikä on tärkeä asia, nyt muutan, että sen sijaan, että kutsuttaisiin komentoa komentotulkista, se yhtäkkiä käyttäisi Python-librsync -ohjelmaa, joka on kirjasto rsync-toimintojen käyttämiseen Python.

    Kun saavutat siirrettävyyden, komentosarja toimii missä tahansa ympäristössä, olipa se sitten Linux, Windows tai OS X.

  12.   dandutrecht dijo

    Kiitos, Gonzalo. Ehdotuksenne on mielestäni erittäin hyvä, ja aion laittaa sen käsikirjoitukseen. tervehdys