Skript Python për rezervime lokale me rsync

Në Gnu / Linux ka programe të ndryshme për të realizuar rezervimin, por personalisht më pëlqejnë gjëra të thjeshta, larg ndërfaqeve grafike (natyrisht që nuk kanë asgjë të keqe, por nëse mund ta shmang përdorimin e saj, i shmang).
Në komandën rsync ekziston një aleat i frikshëm i rezervave që shpesh harrojmë t'i bëjmë. Ka mundësi të mjaftueshme për të bërë një kopje me të gjitha kërkesat e nevojshme. kompjuter-767784_640

Shkrimi i mëposhtëm i pitonit bën kopje rezervë për këtë qëllim. Ju do të shihni se është jashtëzakonisht e thjeshtë dhe madje edhe për ata që nuk kanë absolutisht ide për këtë gjuhë, shtimi i një linje për skenarin për të sinkronizuar një direktori të re është e menjëhershme.
Në makinerinë time unë përdor një disk të jashtëm të fortë që unë e kam quajtur IOmega_HDD, në rastin tuaj ju mund ta riemërtoni atë në skenar sipas rastit tuaj.
Një tjetër gjë është të shtoni ose hiqni drejtoritë nga kopja. Në të njëjtin skenar si linja e komenteve shpjegohet se si ta bëjmë atë.
Për të automatizuar detyrën mund të shtoni një rresht në crontab që përmban interpretuesin python dhe rrugën ku dëshironi të vendosni skenarin. Unë shpresoj se është e dobishme për ju.

Paralajmërim: redaktuesi i wordpress nuk lejon një ndarje në fillim të rreshtit, kështu që indentacioni i nevojshëm në skenar ka humbur, kështu që unë kam zëvendësuar hapësirat bosh me pikë (.) që duhet t'i eliminoni me një redaktor dhe t'i zëvendësoni me hapësira.

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

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


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   matias dijo

    Pershendetje si jeni?
    Më pëlqente skenari, shumë i thjeshtë.
    Pa shkelje, unë bëra disa modifikime për ta bërë më të thjeshtë dhe më të lexueshëm, përveç mbështetjes së Python 2 dhe 3 (aktualisht mund të ekzekutohet vetëm në Python 2)

    Unë ju lë lidhjen me 2 versionet, në rast se jeni të interesuar.
    http://linkode.org/1np9l2bi8IiD5oEkPIUQb5/Yfa4900cA76BpcTpcf4nG1

    1.    dandutrich dijo

      Moda të shkëlqyera dhe më vjen mirë që ju pëlqen skenari

  2.   niphosio dijo

    Qëllimi vlerësohet, por rezultati është i butë dhe suxhuk.
    Mbesa ime 4 vjeçe është e aftë të bëjë një skenar më inteligjent dhe të konfigurueshëm sesa kjo patate që keni vendosur këtu.

    Nga rruga, dhëmbëzimi i kodit është i gabuar, kontrolloni sythet tuaja dhe nuk dua të them ato të flokëve

    1.    dandutrich dijo

      Skenari funksionon në mënyrë perfekte, e kam përdorur për një kohë të gjatë dhe, në fakt, për shkak të numrit të njerëzve që e ndajnë atë, nuk duhet të jetë aq i çmendur sa thoni ju. Ndoshta duhet të telefononi mbesën tuaj për të parë nëse keni vendosur gjithçka në mënyrë korrekte

    2.    tr dijo

      Hej, mëso të vlerësosh dhe në vend që të kritikosh, korrigjo, nëse mburresh kaq shumë.

      1.    dandutrich dijo

        Pikërisht tr, Matias ka bërë disa modifikime të shkëlqyera. Sigurisht që skenari mund të përmirësohet dhe për këtë bëhet fjalë në botën e bashkëpunimit dhe kështu e ka shprehur Matias. Ashtë për të ardhur keq që individët janë këtu për të thartuar atmosferën e mirë që duhet të mbizotërojë. Aty ata.

    3.    abaddon s dijo

      A mendoni se një kritikë e vrazhdë është e dobishme dhe se nuk kontribuon asgjë në skenar? M B MIR D NUK SHKRUANI NJ SC SHKRIM QYTETUES DHE SHP SHRBANI !!!!!!!

  3.   Nuk e di dijo

    Këtu një version tjetër: https://gist.github.com/Itsuki4/5acc3d03f3650719b88d
    Komentoni për gabimet që kam, unë do ta korrigjoj atë (tani jam në dritare dhe nuk mund ta provoja).

  4.   zetaka01 dijo

    Epo unë përdor rsync direkt me një skenar shell, pa përdorur python.
    Vendos një rresht për secilin direktori burimi dhe destinacioni.
    Unë kam disa skenarë në varësi të pajisjes në të cilën bëj kopjen, në rastin tim në rritje.
    Për shembull, të kopjoj librat e mi në një usb 128 MB që është instaluar si parazgjedhje në
    / media / zetaka01 / Sandisk128 Vura rreshtin vijues në skenarin LibrosAusb128.sh:

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

    Nëse direktoria e destinacionit nuk ekziston, ajo e krijon atë për ju dhe fshin nga destinacioni atë që nuk është në origjinë, natyrisht në mënyrë rekursive.
    Një përshëndetje.

  5.   zetaka01 dijo

    Ah, një gabim kopjimi / ngjitje –shlye, me dy viza.

    Një përshëndetje

  6.   dandutrich dijo

    Dëshironi të krijoni një ndërfaqe grafike? Unë kam parë mundësitë e Tkinter dhe Tix, por për kontrollin e zgjedhjes së drejtorive ndoshta Wx është më i mirë

  7.   zetaka01 dijo

    Tashmë ekziston një ndërfaqe grafike e bazuar në GTK, quhet grsync.
    Unë e lë lidhjen për në Wikipedia, https://en.wikipedia.org/wiki/Grsync
    Një përshëndetje.

  8.   fernando dijo

    Pershendetje te gjitheve. Skenari mund të jetë i mrekullueshëm ose i thjeshtë, nuk e di ose më intereson, por gjërat mund të thuhen në një mijë mënyra dhe kur mund të thuhen mirë, pse t'i themi gabim? Duke thënë këtë, më duhet të them se unë kam qenë një përdorues i Linux që nga viti 2008 dhe përkundër gjithë kësaj kohe unë jam i ngadaltë për të mësuar dhe e kam të vështirë të kuptoj shumë gjëra, përfshirë mënyrën e ekzekutimit të një skenari (e di që është e lehtë, por nuk jep më shumë). instaloni programe duke i përpiluar ato etj etj. Kjo është arsyeja pse kur kam lexuar se ekziston një version me një ndërfaqe grafike, unë kam kërkuar dhe kam gjetur këtë faqe ku ata madje ju japin gjithçka të përtypur. Për ngathëtin si server e lë këtu. Përshëndetje dhe faleminderit për përpjekjen tuaj.
    http://www.opbyte.it/grsync/download.html

    1.    dandutrich dijo

      fernando, pa ndonjë keqardhje dhe nëse nuk ju shqetëson të përgjigjeni, unë jam kurioz pse përdorni Gnu / Linux. Faleminderit dhe gjithë të mirat

  9.   zetaka01 dijo

    Epo, një ndërfaqe grafike është shumë miqësore, por nuk ju jep opsionet që ju jep një komandë e plotë.
    Përveç kësaj, nuk është rasti im që e bëj atë për të matur, një skenar, ose shell ose python ose çfarëdo që dëshironi, ju lejon ta programoni atë për të ekzekutuar sa herë që dëshironi.
    Ah, në distro-n tuaj linux duhet të keni rsync dhe grsync pa probleme në depo.
    Një përshëndetje.

  10.   zetaka01 dijo

    Ah Fernando, nëse keni përdorur linux që nga viti 2008 dhe nuk dini si të ekzekutoni një skenar, nuk kam fjalë.
    Një përshëndetje

  11.   Gonzalo martinez dijo

    A janë të gjithë inxhinierët e sistemeve këtu që kritikojnë skenarin që bën dikush për të bashkëpunuar, dhe nëse do të përdorë tastierë / skenar apo çfarëdo tjetër?

    Sa mut te pordhe per hir te Zotit.

    Unë kam qenë duke menaxhuar serverat Linux për 10 vjet, dhe e vërteta është se ngritja elektronike e të bërit gjithçka me skripte më kaloi pak kohë më parë, për shembull, për të administruar Bacula, unë preferoj të përdor ndërfaqen grafike sesa shell për të pretenduar të jetë e rëndësishme, e cila në të vërtetë është një mjet kriminal .

    Dikush duhet të jetë produktiv, nëse dikush ndihet më komod duke e bërë atë përmes ndërfaqes, mirë për të, ajo që ka rëndësi është rezultati, jo se si e bëni.

    Në punën time të mëparshme drejtova zonën e IT të një kompanie, dhe personat në ngarkim i kërkuan që të bënte diçka specifike, unë isha i interesuar për rezultatin, ai nuk më tha «Konfiguro një tjetër vhost në apache, duke përdorur vi pa ngjyrë në një terminal 30 × 20 ”, se ai e bën atë pasi është më i qetë, nëse djali preferon ta bëjë atë kështu, duke u montuar nga SFTP dhe duke përdorur shënimin e Windows, ose duke u lutur me Atin tonë, nuk më interesonte për sa kohë që ai e bëri atë siç duhet.

    dandutrech, skenari përmbush objektivin e tij, e cila është gjëja e rëndësishme, tani ajo që unë do të ndryshoja është që në vend të thirrjes së komandës nga guaska, ai papritmas do të përdorte Python-librsync, i cili është një bibliotekë për të përdorur funksionet rsync brenda Python.

    Me këtë fitoni transportueshmëri, skenari ekzekutohet në çdo mjedis, qoftë Linux, Windows apo OS X.

  12.   dandutrecht dijo

    Faleminderit, Gonzalo. Sugjerimi juaj mendoj se është shumë i mirë dhe do ta fus në skenar. një përshëndetje