Python-skripto por lokaj sekurkopioj kun rsync

En Gnu / Linukso ekzistas diversaj programoj por realigi la sekurkopion, sed persone mi ŝatas simplajn aferojn, malproksimajn de grafikaj interfacoj (kiuj kompreneble havas nenion malbonan, sed se mi povas eviti uzi ĝin, mi evitas).
En la rsync-komando estas timinda aliancano de sekurkopioj, kiujn ni ofte forgesas fari. Ĝi havas sufiĉe da ebloj por fari kopion kun ĉiuj necesaj postuloj. komputilo-767784_640

La sekva pitona skripto faras rezervajn kopiojn tiucele. Vi vidos, ke ĝi estas ege simpla kaj eĉ por tiuj, kiuj tute ne scias pri ĉi tiu lingvo, aldoni linion por la skripto por sinkronigi novan dosierujon estas tuja.
En mia maŝino mi uzas eksteran malmolan diskon, kiun mi nomis IOmega_HDD, en via kazo vi povas alinomi ĝin en la skripto laŭ via kazo.
Alia afero estas aldoni aŭ forigi dosierujojn de la kopio. En la sama skripto kiel la komenta linio estas klarigite kiel fari ĝin.
Por aŭtomatigi la taskon, vi povas aldoni linion al crontab enhavanta la python-interpretilon kaj la vojon, kien vi volas meti la skripton. Mi esperas, ke ĝi utilos al vi.

Averto: la wordpress-redaktilo ne permesas interspacon komence de la linio, do la necesa indentaĵo perdiĝis en la skripto, do mi anstataŭigis la malplenajn spacojn per punktoj (.), kiujn vi devas forigi per redaktilo kaj anstataŭigi ilin per spacoj. .

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

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


La enhavo de la artikolo aliĝas al niaj principoj de redakcia etiko. Por raporti eraron alklaku Ĉi tie.

18 komentoj, lasu la viajn

Lasu vian komenton

Via retpoŝta adreso ne estos eldonita. Postulita kampojn estas markita per *

*

*

  1. Respondeculo pri la datumoj: Miguel Ángel Gatón
  2. Celo de la datumoj: Kontrola SPAM, administrado de komentoj.
  3. Legitimado: Via konsento
  4. Komunikado de la datumoj: La datumoj ne estos komunikitaj al triaj krom per laŭleĝa devo.
  5. Stokado de datumoj: Datumbazo gastigita de Occentus Networks (EU)
  6. Rajtoj: Iam ajn vi povas limigi, retrovi kaj forigi viajn informojn.

  1.   Matiaso diris

    Saluton kiel vi fartas?
    Mi ŝatis la skripton, tre simplan.
    Neniu ofendo, mi faris iujn modifojn por fari ĝin pli simpla kaj legebla, krom subteni Python 2 kaj 3 (nuntempe ĝi povus esti rulita nur en Python 2)

    Mi lasas al vi la ligon kun la 2 versioj, se vi interesiĝas.
    http://linkode.org/1np9l2bi8IiD5oEkPIUQb5/Yfa4900cA76BpcTpcf4nG1

    1.    dandutrich diris

      Bonegaj modoj kaj mi ĝojas, ke vi ŝatas la skripton

  2.   niphosio diris

    La intenco estas dankita, sed la rezulto estas belega kaj kolbaso.
    Mia 4-jara nevino kapablas fari pli inteligentan kaj agordeblan skripton ol ĉi tiu terpomo, kiun vi metis ĉi tie.

    Parenteze, la indenta kodo estas malĝusta, kontrolu viajn buklojn kaj mi ne celas la harojn

    1.    dandutrich diris

      La skripto funkcias perfekte, mi uzas ĝin delonge kaj, fakte, pro la nombro da homoj, kiuj dividas ĝin, ĝi ne devas esti tiel aĉa kiel vi diras. Eble vi devas telefoni al via nevino por vidi ĉu vi aranĝis ĉion ĝuste

    2.    tr diris

      He, lernu taksi kaj anstataŭ kritiki, korekti, se vi tiel fanfaronas.

      1.    dandutrich diris

        Ĝuste tr, Matias faris grandajn modifojn. Certe la skripto plibonigeblas kaj pri tio temas en la mondo de kunlaboro kaj tiel esprimis ĝin Matias. Estas domaĝe, ke individuoj estas ĉi tie por acidigi la bonan etoson, kiu devas regi. Tie ili.

    3.    abaddon s diris

      Ĉu vi pensas, ke malĝentila kritiko estas utila kaj ke ĝi ne aldonas ion al la skribaĵo? PLI BONA VI NE SKRIBAS FIKAN SKRIBLON KAJ Dividas ĝin !!!!!!

  3.   Mi ne scias diris

    Jen alia versio: https://gist.github.com/Itsuki4/5acc3d03f3650719b88d
    Komentu la erarojn, kiujn mi havas, mi korektos ĝin (nun mi estas en Windows kaj mi ne povis testi ĝin).

  4.   zetaka01 diris

    Nu mi uzas rsync rekte kun ŝela skripto, sen uzi python.
    Mi metis linion por ĉiu fonta kaj celloka adresaro.
    Mi havas plurajn skriptojn depende de la aparato sur kiu mi faras la kopion, en mia kazo pliigita.
    Ekzemple kopii miajn librojn al 128MB-usb instalita defaŭlte en
    / media / zetaka01 / Sandisk128 Mi enmetis la skripton LibrosAusb128.sh la jenan linion:

    rsync -av –delete / home / zetaka01 / Libroj / amaskomunikiloj / zetaka01 / Sandisk128 /

    Se la celloka adresaro ne ekzistas, ĝi kreas ĝin por vi kaj forigas de la celloko tion, kio ne estas en la origino, rekursive kompreneble.
    Un saluto.

  5.   zetaka01 diris

    Ha, kopii / alglui - forigi eraron, kun du streketoj.

    Salutoj

  6.   dandutrich diris

    Ĉu vi volas krei grafikan interfacon? Mi vidis la eblojn de Tkinter kaj Tix sed por la kontrolo de la elekto de adresaroj eble Wx estas pli bona

  7.   zetaka01 diris

    Jam ekzistas grafika interfaco bazita sur GTK, ĝi nomiĝas grsync.
    Mi lasas la ligon al Vikipedio, https://en.wikipedia.org/wiki/Grsync
    Un saluto.

  8.   Fernando diris

    Saluton al ĉiuj. La skripto povas esti mirindaĵo aŭ simpleco, mi ne scias aŭ zorgas, sed aferoj povas esti dirataj milmaniere kaj kiam ili povas esti diritaj bone, kial diri ilin malĝuste? Dirinte tion, mi devas diri, ke mi estas Linuksa uzanto ekde 2008 kaj malgraŭ ĉi tiu tempo mi malrapide lernas kaj estas tre malfacile por mi kompreni multajn aferojn inkluzive kiel ekzekuti skripton (facile mi scias sed unu ne donas pli). instali programojn kompilante ilin ktp ktp. Tial, kiam mi legis, ke ekzistas versio kun grafika interfaco, mi rigardis kaj trovis ĉi tiun paĝon, kie ili eĉ maĉas ĉion. Por la mallerta kiel servilo mi lasas ĝin ĉi tie. Saluton kaj dankon pro via penado.
    http://www.opbyte.it/grsync/download.html

    1.    dandutrich diris

      fernando, sen ia akreco kaj se vi ne ĝenas respondi, mi scivolas kial vi uzas Gnu / Linukso. Dankon kaj koran saluton

  9.   zetaka01 diris

    Nu, grafika interfaco estas tre amika, sed ĝi ne donas al vi la eblojn, kiujn plena komando donas al vi.
    Ankaŭ ne estas mia kazo, ke mi faras ĝin laŭmezure, skripto, ĉu ŝelo aŭ pitono aŭ kion ajn vi volas, permesas al vi programi ĝin por ruliĝi kiam ajn vi volas.
    Ah, en via Linux-distribuo vi devas havi rsync kaj grsync senprobleme en la deponejoj.
    Un saluto.

  10.   zetaka01 diris

    Ah Fernando, se vi uzas linux ekde 2008 kaj vi ne scias kiel funkciigi skripton, mi ne havas vortojn.
    Salutoj

  11.   Gonzalo martinez diris

    Pa estas ĉiuj sistemaj inĝenieroj ĉi tie, kiuj kritikas la skripton, kiun iu faras por kunlabori, kaj ĉu uzi konzolon / skripton aŭ kio ajn?

    Kiom da feko furzi pro Dio.

    Mi administras Linuksajn servilojn de 10 jaroj, kaj la vero estas, ke la elektronika konstruado fari ĉion per skriptoj preterpasis min antaŭ iom da tempo, ekzemple por administri Bacula, mi preferas uzi la grafikan interfacon ol la ŝelon por ŝajnigi esti grava, kio vere estas krima rimedo.

    Oni devas esti produktema, se iu sentas sin pli komforta fari ĝin per la interfaco, nu por li, kio gravas estas la rezulto, ne kiel vi faras ĝin.

    En mia antaŭa laboro mi direktis la informadikan areon de kompanio, kaj la respondeculoj petis lin fari ion specifan, mi interesiĝis pri la rezulto, li ne diris «Agordi alian vhoston en apache, uzante la vi sen koloro en fina stacio 30 × 20 ”, ke li faras ĝin kiel li plej komfortas, se la ulo preferis fari ĝin tiel, muntante per SFTP kaj uzante la fenestran notblokon, aŭ preĝante nian Patron, mi ne zorgis tiel longe kiel li faris ĝin ĝuste.

    dandutrech, la skripto plenumas sian celon, kio estas la grava afero, nun kion mi ŝanĝus estas, ke anstataŭ invoki la komandon el la ŝelo, ĝi subite uzus Python-librsync, kiu estas biblioteko por uzi la rsync-funkciojn ene de Python .

    Per tio vi akiras porteblecon, la skripto funkcias en iu ajn medio, ĉu Linukso, Vindozo aŭ OS X.

  12.   dandutrecht diris

    Dankon, Gonzalo. Via sugesto laŭ mi estas tre bona kaj mi metos ĝin en la manuskripton. saluto