Python skripts vietējām dublējumkopijām ar rsync

Gnu / Linux dublējumkopijas veikšanai ir dažādas programmas, taču man personīgi patīk vienkāršas lietas, tālu no grafiskām saskarnēm (kurām, protams, nav nekā nepareiza, bet, ja es varu izvairīties no tā izmantošanas, es izvairos).
Komandā rsync ir milzīgs dublējumu sabiedrotais, ko mēs bieži aizmirstam. Tam ir pietiekami daudz iespēju, lai izveidotu kopiju ar visām nepieciešamajām prasībām.dators-767784_640

Šis python skripts šim nolūkam izveido rezerves kopijas. Jūs redzēsiet, ka tas ir ārkārtīgi vienkārši un pat tiem, kam nav pilnīgi nekādas nojausmas par šo valodu, skripta rindiņas pievienošana jauna direktorija sinhronizēšanai ir tūlītēja.
Savā mašīnā es izmantoju ārēju cieto disku, kuru esmu nosaucis par IOmega_HDD, jūsu gadījumā jūs to varat pārdēvēt skriptā atbilstoši savam gadījumam.
Cita lieta ir direktoriju pievienošana vai noņemšana no kopijas. Tajā pašā skriptā kā komentāru rindiņa ir paskaidrots, kā to izdarīt.
Lai automatizētu uzdevumu, crontab var pievienot rindu, kurā ir pitona tulks un ceļš, kur vēlaties ievietot skriptu. Es ceru, ka tas jums ir noderīgs.

Brīdinājums: WordPress redaktors nepieļauj atstarpes rindas sākumā, līdz ar to skriptā ir pazaudēts nepieciešamais ievilkums, tāpēc tukšās vietas esmu aizstājis ar punktiem (.), kas jums ir jālikvidē ar redaktoru un jāaizstāj ar atstarpēm.

-------------------------------
# -*- 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 komentāri, atstājiet savus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   Matias teica

    Sveiks kā tev iet?
    Man patika scenārijs, ļoti vienkāršs.
    Neviens pārkāpums, es veicu dažas modifikācijas, lai padarītu to vienkāršāku un lasāmāku, papildus atbalstot Python 2 un 3 (pašlaik to varēja palaist tikai Python 2)

    Es jums atstāju saiti ar 2 versijām, ja jūs interesē.
    http://linkode.org/1np9l2bi8IiD5oEkPIUQb5/Yfa4900cA76BpcTpcf4nG1

    1.    blaugzne teica

      Lieliski modi, un es priecājos, ka skripts jums patīk

  2.   niphosio teica

    Nodoms tiek novērtēts, bet rezultāts ir lipīgs un desu.
    Mana 4 gadus vecā omīte spēj izveidot inteliģentāku un konfigurējamāku skriptu nekā šis šeit ievietotais kartupelis.

    Starp citu, koda atkāpe ir nepareiza, pārbaudiet savas cilpas, un es nedomāju, ka ir matiem

    1.    blaugzne teica

      Skripts darbojas nevainojami, es to izmantoju jau ilgu laiku, un patiesībā, ņemot vērā to cilvēku skaitu, kuri to koplieto, tam nevajadzētu būt tik nežēlīgam, kā jūs sakāt. Varbūt jums vajadzētu piezvanīt savai brāļameitai, lai uzzinātu, vai esat visu pareizi iestatījis

    2.    tr teica

      Hei, iemācies novērtēt un nevis kritizē, koriģē, ja tik ļoti lepojies.

      1.    blaugzne teica

        Tieši tr, Matiass ir veicis dažas lieliskas modifikācijas. Protams, skriptu var uzlabot, un tas ir tas, par ko tas ir sadarbības pasaulē, un tieši tā Matiass to ir izteicis. Žēl, ka cilvēki šeit atrodas, lai sabojātu labu atmosfēru, kurai vajadzētu dominēt. Tur viņi.

    3.    Abaddon s teica

      Vai jūs domājat, ka rupja kritika ir noderīga un ka tā neko nepievieno skriptam? LABĀK NERAKSTIET NOSŪTĪTU SKRAKSTU UN PALĪGOJIET !!!!!!!

  3.   ES nezinu teica

    Šeit cita versija: https://gist.github.com/Itsuki4/5acc3d03f3650719b88d
    Komentējiet kļūdas, kuras man ir, es tās izlabošu (tagad es atrodos Windows un es to nevarēju pārbaudīt).

  4.   zetaka01 teica

    Es izmantoju rsync tieši ar čaulas skriptu, neizmantojot pitonu.
    Es ievietoju rindu katram avota un mērķa direktorijai.
    Man ir vairāki skripti atkarībā no ierīces, kurā es kopiju, manā gadījumā tas ir pakāpeniski.
    Piemēram, lai kopētu savas grāmatas uz 128 MB lielu USB datu bāzi, kas pēc noklusējuma ir instalēta
    / media / zetaka01 / Sandisk128 Es ievietoju skriptu LibrosAusb128.sh šādu rindu:

    rsync -av –delete / home / zetaka01 / Grāmatas / multivide / zetaka01 / Sandisk128 /

    Ja galamērķa direktorija nepastāv, tas to izveido jums un, protams, rekursīvi izdzēš no galamērķa to, kas nav izcelsmes vietā.
    Sveiciens.

  5.   zetaka01 teica

    Ak, kopēšanas / ielīmēšanas kļūda ar divām defisēm.

    Sveiciens

  6.   blaugzne teica

    Vai vēlaties izveidot grafisko saskarni? Esmu redzējis Tkinter un Tix iespējas, bet, lai kontrolētu direktoriju izvēli, varbūt Wx ir labāks

  7.   zetaka01 teica

    Jau ir grafiska saskarne, kuras pamatā ir GTK, to sauc par grsync.
    Es atstāju saiti uz Wikipedia, https://en.wikipedia.org/wiki/Grsync
    Sveiciens.

  8.   Fernando teica

    Sveiki visiem. Scenārijs var būt brīnums vai vienkāršība, kuru es nezinu un nerūpēju, bet lietas var pateikt tūkstošos veidos, un kad tās var pateikt labi, kāpēc tās teikt nepareizi? To sakot, man jāsaka, ka esmu bijis Linux lietotājs kopš 2008. gada un, neskatoties uz visu šo laiku, es mācos lēnām, un man ir grūti saprast daudzas lietas, tostarp to, kā palaist skriptu (es zinu, ka tas ir viegli, bet viens vairs nedod). instalēt programmas, tos apkopojot utt. utt. Tāpēc, kad es izlasīju, ka pastāv versija ar grafisko saskarni, esmu meklējis un atradis šo lapu, kur viņi pat visu košļāj. Par neveiklu kā serveri es to atstāju šeit. Sveiciens un paldies par jūsu pūlēm.
    http://www.opbyte.it/grsync/download.html

    1.    blaugzne teica

      fernando, bez jebkādas asas izjūtas un, ja jums nav iebildumu atbildēt, man ir interese, kāpēc jūs izmantojat Gnu / Linux. Paldies un labākie vēlējumi

  9.   zetaka01 teica

    Grafiskais interfeiss ir ļoti draudzīgs, taču tas nedod jums iespējas, kuras jums dod pilna komanda.
    Turklāt tas nav mans gadījums, kad es to daru mērīšanas nolūkā, skripts, vai nu čaula, vai pitons, vai kāds vien vēlaties, ļauj to ieprogrammēt, lai palaistu, kad vien vēlaties.
    Ah, jūsu linux distro jums krātuvēs vajadzētu būt bez problēmām rsync un grsync.
    Sveiciens.

  10.   zetaka01 teica

    Ak Fernando, ja jūs lietojat Linux kopš 2008. gada un nezināt, kā palaist skriptu, man nav vārdu.
    Sveiciens

  11.   Gonzalo Martinez teica

    Pa šeit ir visi sistēmu inženieri, kuri kritizē skriptu, ko kāds dara, lai sadarbotos, un ja izmantot konsoli / skriptu vai ko citu?

    Cik daudz sūdu dievam fārtot

    Es pārvaldīju Linux serverus 10 gadus, un patiesība ir tāda, ka elektroniska uzstādīšana, darot visu ar skriptiem, man pagāja pirms kāda laika, piemēram, lai administrētu Bacula, es gribētu izmantot grafisko interfeisu, nevis čaulu, lai izliktos par svarīgu, kas patiešām ir noziedzīgs līdzeklis. .

    Ir jābūt produktīvam, ja kāds jūtas ērtāk to darīt, izmantojot saskarni, labi viņam, svarīgs ir rezultāts, nevis kā jūs to darāt.

    Iepriekšējā darbā es vadīju uzņēmuma IT jomu, un atbildīgie cilvēki lūdza viņu izdarīt kaut ko konkrētu, mani interesēja rezultāts, viņš neteica «Konfigurēt citu vhost apache, terminālā izmantojot vi bez krāsas 30 × 20 ”, ka viņš to dara pēc iespējas ērtāk, ja puisis labprātāk to darīja tā, uzstādot SFTP un izmantojot logu bloknotu vai lūdzot mūsu Tēvu, man bija vienalga, kamēr viņš to izdarīja pareizi.

    dandutrech, skripts izpilda savu mērķi, kas ir svarīgi, tagad es mainītu to, ka tā vietā, lai izsauktu komandu no čaumalas, tas pēkšņi izmantotu Python-librsync, kas ir bibliotēka, lai izmantotu rsync funkcijas Python.

    Tādējādi iegūstat pārnesamību, skripts darbojas jebkurā vidē, neatkarīgi no tā, vai tā ir Linux, Windows vai OS X.

  12.   dandutrehta teica

    Paldies, Gonzalo. Jūsu ieteikums, manuprāt, ir ļoti labs, un es to ievietošu scenārijā. sveiciens