Python skript za lokalne varnostne kopije z rsync

V Gnu / Linuxu obstajajo različni programi za varnostno kopiranje, vendar so mi osebno všeč preproste stvari, daleč od grafičnih vmesnikov (ki seveda nimajo nič narobe, če pa se temu lahko izognem, se izognem).
V ukazu rsync je mogočen zaveznik varnostnih kopij, ki ga pogosto pozabimo narediti. Ima dovolj možnosti za kopiranje z vsemi potrebnimi zahtevami. računalnik-767784_640

Naslednji skript python v ta namen naredi varnostne kopije. Videli boste, da je zelo preprost in celo za tiste, ki tega jezika nimajo popolnoma pojma, je dodajanje vrstice za skript za sinhronizacijo novega imenika takoj.
V svojem računalniku uporabljam zunanji trdi disk, ki sem ga imenoval IOmega_HDD, v vašem primeru pa ga lahko v skriptu preimenujete glede na vaš primer.
Druga stvar je dodati ali odstraniti imenike iz kopije. V istem skriptu kot vrstica za komentar je razloženo, kako to storiti.
Za avtomatizacijo naloge lahko v crontab dodate vrstico, ki vsebuje interpreter python in pot, kamor želite postaviti skript. Upam, da je koristno za vas.

Opozorilo: urejevalnik wordpress ne dovoljuje presledkov na začetku vrstice, zato je v skriptu izgubljena potrebna vdolbina, zato sem prazne presledke zamenjal s pikami (.), ki jih morate odstraniti z urejevalnikom in zamenjati s presledki .

-------------------------------
# -*- 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"

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


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   Matias je dejal

    Živjo kako si?
    Všeč mi je bil scenarij, zelo preprost.
    Brez zamere sem naredil nekaj sprememb, da je bil enostavnejši in bolj berljiv, poleg tega da podpira Python 2 in 3 (trenutno ga je mogoče izvajati samo v Pythonu 2)

    Če vas zanima, pustim povezavo do dveh različic.
    http://linkode.org/1np9l2bi8IiD5oEkPIUQb5/Yfa4900cA76BpcTpcf4nG1

    1.    dandutrich je dejal

      Odlični modi in vesel sem, da vam je scenarij všeč

  2.   niphosio je dejal

    Namero cenimo, rezultat pa je lepljiv in klobasa.
    Moja 4-letna nečakinja je sposobna narediti bolj inteligenten in prilagodljiv scenarij od tega krompirja, ki ste ga dali tukaj.

    Mimogrede, zamik kode je napačen, preverite svoje zanke in ne mislim na tiste lasne

    1.    dandutrich je dejal

      Skript deluje odlično, uporabljam ga že dolgo in pravzaprav zaradi števila ljudi, ki si ga delijo, ne bi smel biti tako nor, kot pravite. Mogoče bi morali poklicati svojo nečakinjo in preveriti, ali ste vse pravilno postavili

    2.    tr je dejal

      Hej, nauči se ceniti in namesto kritiziranja popravi, če se tako hvališ.

      1.    dandutrich je dejal

        Matias je naredil nekaj velikih sprememb. Vsekakor je scenarij mogoče izboljšati in to je tisto, za kar gre v svetu sodelovanja, in tako je Matias to izrazil. Škoda, da so tu posamezniki, da kisijo dobro vzdušje, ki bi moralo vladati. Tam so.

    3.    abadon s je dejal

      Se vam zdi, da je nesramna kritika koristna in da ne doda ničesar k skriptu? BOLJŠE NE PIŠITE PRESRNEGA SKRIPTA IN DELITE !!!!!!!

  3.   Nevem je dejal

    Tu je še različica: https://gist.github.com/Itsuki4/5acc3d03f3650719b88d
    Komentirajte napake, ki jih imam, jih bom popravil (zdaj sem v operacijskem sistemu Windows in ga nisem mogel preizkusiti).

  4.   zetaka01 je dejal

    No, rsync uporabljam neposredno s skriptom lupine, ne da bi uporabil python.
    Za vsak izvorni in ciljni imenik sem dal vrstico.
    Imam več skriptov, odvisno od naprave, v kateri delam kopijo, v mojem primeru postopno.
    Na primer, da kopiram svoje knjige na 128 MB usb, ki je privzeto nameščen v
    / media / zetaka01 / Sandisk128 V skript LibrosAusb128.sh sem dal naslednjo vrstico:

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

    Če ciljni imenik ne obstaja, ga ustvari za vas in iz cilja izbriše tisto, kar ni v izvoru, seveda rekurzivno.
    Pozdrav.

  5.   zetaka01 je dejal

    Ah, napaka pri kopiranju / lepljenju - brisanje z dvema vezajema.

    pozdrav

  6.   dandutrich je dejal

    Ali želite ustvariti grafični vmesnik? Videl sem možnosti Tkinterja in Tixa, toda za nadzor izbire imenikov je morda boljši Wx

  7.   zetaka01 je dejal

    Na osnovi GTK že obstaja grafični vmesnik, ki se imenuje grsync.
    Pustim povezavo do Wikipedije, https://en.wikipedia.org/wiki/Grsync
    Pozdrav.

  8.   fernando je dejal

    Pozdravljeni vsi skupaj. Scenarij je lahko čudo ali preprostost, ki je ne poznam ali me ne zanima, vendar je mogoče stvari povedati na tisoče načinov in če jih je mogoče reči dobro, zakaj jih rečem narobe? Po tem moram povedati, da sem uporabnik Linuxa od leta 2008 in kljub vsem tem časom se počasi učim in težko razumem marsikaj, vključno s tem, kako zagnati skript (vem, da je to enostavno, toda ne ne dam več). namestite programe tako, da jih sestavite itd. itd. Zato sem, ko sem prebral, da obstaja različica z grafičnim vmesnikom, iskal in našel to stran, kjer vam celo dajo vse prežvečeno. Za nerodnega strežnika ga pustim tukaj. Lep pozdrav in hvala za vaš trud.
    http://www.opbyte.it/grsync/download.html

    1.    dandutrich je dejal

      fernando, brez kakršnega koli ogorčenja in če vas ne moti odgovoriti, me zanima, zakaj uporabljate Gnu / Linux. Hvala in lep pozdrav

  9.   zetaka01 je dejal

    No, grafični vmesnik je zelo prijazen, vendar vam ne daje možnosti, ki vam jih ponuja celoten ukaz.
    Poleg tega ni moj primer, da to počnem po meri, saj vam skript, naj bo lupina ali python ali karkoli želite, omogoča, da ga programirate, da se zažene, kadar koli želite.
    Ah, v vašem linux distribucijskem sistemu bi morali imeti v repozitorijih brez težav rsync in grsync.
    Pozdrav.

  10.   zetaka01 je dejal

    Ah Fernando, če uporabljate linux od leta 2008 in ne veste, kako zagnati skript, nimam besed.
    pozdrav

  11.   Gonzalo Martinez je dejal

    Ali so tukaj vsi sistemski inženirji, ki kritizirajo skript, ki ga nekdo naredi za sodelovanje, in če uporablja konzolo / skript ali kaj drugega?

    Koliko sranja prdeti za božjo voljo.

    S strežniki Linux upravljam že 10 let in resnica je, da me je elektronsko postavljanje vsega, kar delam s skripti, že pred časom minilo, na primer za skrbništvo nad Baculo, raje uporabljam grafični vmesnik kot lupino, da se pretvarjam, da sem kar je resnično kaznivo sredstvo.

    Človek mora biti produktiven, če se nekdo počuti udobneje, če to počne prek vmesnika, zanj je pomemben rezultat, ne pa, kako to storite.

    V prejšnji službi sem vodil področje informacijske tehnologije v podjetju in odgovorni so ga prosili, naj naredi nekaj konkretnega, zanima me rezultat, ni rekel «Konfigurirajte še en vhost v apacheju, z uporabo vi brez barve v terminalu 30 × 20 ”, da to počne tako, kot je najbolj udobno, če je fant to raje naredil tako, da je montiral s SFTP in uporabljal okenski beležnik ali molil našega očeta, mi je bilo vseeno, dokler je naredil prav.

    dandutrech, skript izpolni svoj cilj, kar je pomembno, zdaj pa bi spremenil, da namesto da bi ukaz iz lupine nenadoma uporabil Python-librsync, ki je knjižnica za uporabo funkcij rsync v Pythonu .

    S tem pridobite prenosljivost, skript se izvaja v katerem koli okolju, pa naj bo to Linux, Windows ali OS X.

  12.   dandutrecht je dejal

    Hvala, Gonzalo. Vaš predlog se mi zdi zelo dober in ga bom podal v scenarij. Pozdrav