Skript v jazyku Python pre lokálne zálohy pomocou rsync

V Gnu / Linux existujú rôzne programy na vykonávanie zálohovania, ale osobne mám rád jednoduché veci, ďaleko od grafických rozhraní (ktoré samozrejme nemajú nič zlé, ale ak sa im môžem vyhnúť, tak sa im vyhýbam).
V príkaze rsync je impozantný spojenec záloh, na ktoré často zabúdame. Má dostatok možností na vyhotovenie kópie so všetkými potrebnými požiadavkami. počítač-767784_640

Nasledujúci skript v jazyku Python na tento účel vytvára záložné kópie. Uvidíte, že je to nesmierne jednoduché a dokonca aj pre tých, ktorí o tomto jazyku vôbec netušia, je pridanie riadku skriptu na synchronizáciu nového adresára okamžité.
Vo svojom stroji používam externý pevný disk, ktorý som nazval IOmega_HDD, vo vašom prípade ho môžete podľa vášho prípadu premenovať v skripte.
Ďalšou vecou je pridanie alebo odstránenie adresárov z kópie. V rovnakom skripte ako v riadku komentára je vysvetlené, ako na to.
Ak chcete úlohu zautomatizovať, môžete do riadku crontab pridať riadok obsahujúci tlmočník pythonu a cestu, kam chcete skript umiestniť. Dúfam, že je to pre vás užitočné.

Upozornenie: editor wordpressu neumožňuje medzery na začiatku riadku, čím sa stratilo potrebné odsadenie v skripte, preto som prázdne medzery nahradil bodmi (.), ktoré musíte odstrániť editorom a nahradiť medzerami.

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

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


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   Matias dijo

    Ahoj ako sa máš?
    Páčil sa mi scenár, veľmi jednoduchý.
    Bez urážky, urobil som niekoľko úprav, aby som bol jednoduchší a čitateľnejší, a podporil som aj Python 2 a 3 (momentálne sa dal spustiť iba v Pythone 2)

    Nechám vám odkaz na 2 verzie, ak by vás to zaujímalo.
    http://linkode.org/1np9l2bi8IiD5oEkPIUQb5/Yfa4900cA76BpcTpcf4nG1

    1.    dandutrich dijo

      Skvelé režimy a som rád, že sa vám scenár páči

  2.   niphosio dijo

    Zámer sa cení, ale výsledkom je nevkusná klobása.
    Moja 4-ročná neter je schopná vytvoriť inteligentnejší a konfigurovateľnejší scenár ako tento zemiak, ktorý ste sem vložili.

    Mimochodom, odsadenie kódu je nesprávne, skontrolujte slučky a nemyslím tým vlasové

    1.    dandutrich dijo

      Scenár funguje perfektne, používam ho už dlho a popravde, kvôli množstvu ľudí, ktorí ho zdieľajú, by nemal byť taký mizerný, ako hovoríte. Možno by ste mali zavolať svojej neteri, aby ste zistili, či ste nastavili všetko správne

    2.    tr dijo

      Hej, nauč sa vážiť si a namiesto kritiky oprav, ak sa tak chváliš.

      1.    dandutrich dijo

        Presne tr, Matias urobil niekoľko skvelých úprav. Určite sa dá vylepšiť scenár, o čom to je vo svete spolupráce a o čom sa vyjadril aj Matias. Je škoda, že tu sú jednotlivci, aby nakysli dobrú atmosféru, ktorá by mala panovať. Tam oni.

    3.    abaddon s dijo

      Myslíte si, že je hrubá kritika užitočná a že nijako neprispieva k scenáru? LEPŠIE NENAPÍŠTE SKUTOČNÝ SKRIPT A ZDIEĽAJTE !!!!

  3.   Neviem dijo

    Tu iná verzia: https://gist.github.com/Itsuki4/5acc3d03f3650719b88d
    Komentujte chyby, ktoré mám, opravím ich (teraz som v systéme Windows a nemohol som to otestovať).

  4.   zetaka01 dijo

    Používam rsync priamo s shell skriptom bez použitia pythonu.
    Dal som riadok pre každý zdrojový a cieľový adresár.
    Mám niekoľko skriptov v závislosti od zariadenia, na ktorom kópiu vytvorím, v mojom prípade inkrementálne.
    Napríklad na kopírovanie mojich kníh na 128 MB USB, ktorý je predvolene nainštalovaný v
    / media / zetaka01 / Sandisk128 som vložil do skriptu LibrosAusb128.sh nasledujúci riadok:

    rsync -av –delete / home / zetaka01 / Knihy / médiá / zetaka01 / Sandisk128 /

    Ak cieľový adresár neexistuje, vytvorí ho za vás a samozrejme rekurzívne odstráni z cieľa to, čo nie je v pôvode.
    Pozdrav.

  5.   zetaka01 dijo

    Aha, chyba kopírovania / vkladania - odstránenia, s dvoma spojovníkmi.

    Pozdrav

  6.   dandutrich dijo

    Chcete vytvoriť grafické rozhranie? Videl som možnosti Tkintera a Tixa, ale pre kontrolu výberu adresárov je možno lepší Wx

  7.   zetaka01 dijo

    Grafické rozhranie založené na GTK už existuje, volá sa grsync.
    Nechávam odkaz na Wikipédiu, https://en.wikipedia.org/wiki/Grsync
    Pozdrav.

  8.   Fernando dijo

    Ahojte všetci. Scenár môže byť zázrakom alebo jednoduchosťou, ktorú nepoznám ani mi to nevadí, ale veci sa dajú povedať na tisíc spôsobov a keď sa dajú povedať dobre, prečo ich povedať zle? To znamená, že musím povedať, že som používateľom systému Linux od roku 2008 a napriek tomu všetkému sa učím pomaly a je pre mňa veľmi ťažké pochopiť veľa vecí, vrátane toho, ako vykonať skript (ľahko, viem, ale človek viac nedáva). inštalovať programy ich kompiláciou atď. atď. Preto keď som čítal, že existuje verzia s grafickým rozhraním, pozrel som sa a našiel som túto stránku, kde vám poskytnú všetko, čo aj prežúvajú. Pre neohrabaného servera to nechávam tu. Zdravím a ďakujem za vašu námahu.
    http://www.opbyte.it/grsync/download.html

    1.    dandutrich dijo

      fernando, bez prudkosti a ak ti nebude vadiť odpovedať, som zvedavý, prečo používaš Gnu / Linux. Ďakujeme a ostávame s pozdravom

  9.   zetaka01 dijo

    Grafické rozhranie je veľmi priateľské, ale neposkytuje vám možnosti, ktoré vám poskytne úplný príkaz.
    Tiež to nie je môj prípad, že to robím na meranie, skript, či už shell alebo python alebo čokoľvek chcete, vám umožní naprogramovať ho tak, aby bežal kedykoľvek chcete.
    Ah, vo svojom linuxovom distro by ste mali mať v úložiskách rsync a grsync bez problémov.
    Pozdrav.

  10.   zetaka01 dijo

    Ah Fernando, ak používate Linux od roku 2008 a neviete, ako spustiť skript, nemám slov.
    Pozdrav

  11.   Gonzalo Martinez dijo

    Pa, sú tu všetci systémoví inžinieri, ktorí kritizujú skript, ktorý niekto vytvorí pre spoluprácu, a či použiť konzolu / skript alebo čokoľvek iné?

    Koľko sračiek prdiť preboha.

    Linuxové servery spravujem už 10 rokov a pravdou je, že elektronická montáž všetkého, čo robím so skriptmi, sa mi stala pred časom, napríklad pri správe Baculu, radšej pred grafickým použitím ako grafické prostredie než shell ukážem, že je to dôležité, čo je skutočne kriminálne médium .

    Človek musí byť produktívny, ak sa niekto cíti pohodlnejšie robiť to cez rozhranie, dobre pre neho, na čom záleží, je výsledok, nie to, ako to robíš.

    V mojej predchádzajúcej práci som riadil IT oblasť spoločnosti a zodpovední ľudia ho požiadali, aby urobil niečo konkrétne, zaujímal ma výsledok, nepovedal «Konfigurujte iného vhosta v apache pomocou vi bez farby v termináli 30 × 20 ”, že to robí tak, ako mu je najpríjemnejšie, ak to ten chlap urobil radšej, pripevnenie pomocou SFTP a použitie poznámkového bloku systému Windows alebo modlitba za nášho Otca, bolo mi to jedno, pokiaľ to robil dobre.

    dandutrech, skript plní svoj cieľ, čo je dôležité, čo by som teraz zmenil je, že namiesto vyvolania príkazu z shellu by zrazu použil Python-librsync, čo je knižnica na použitie funkcií rsync v rámci Python.

    Vďaka tomu, že získate prenosnosť, sa skript spustí v akomkoľvek prostredí, či už je to Linux, Windows alebo OS X.

  12.   dandutrecht dijo

    Vďaka, Gonzalo. Váš návrh je podľa mňa veľmi dobrý a uvediem ho v scenári. pozdrav