„Python“ scenarijus vietinėms atsarginėms kopijoms su „rsync“

„Gnu / Linux“ yra skirtingos programos, skirtos atlikti atsarginę kopiją, bet man asmeniškai patinka paprasti dalykai, toli gražu ne grafinės sąsajos (kurios, žinoma, neturi nieko blogo, bet jei galiu išvengti jos naudojimo, vengiu).
Komandoje „rsync“ yra didžiulis atsarginių kopijų sąjungininkas, kurį mes dažnai pamiršome padaryti. Jame yra pakankamai galimybių padaryti kopiją su visais būtinais reikalavimais. kompiuteris-767784_640

Šis python scenarijus šiam tikslui daro atsargines kopijas. Pamatysite, kad tai yra labai paprasta ir net tiems, kurie visiškai neįsivaizduoja šios kalbos, nedelsiant reikia pridėti eilutę scenarijui sinchronizuoti naują katalogą.
Savo kompiuteryje naudoju išorinį standųjį diską, kurį pavadinau „IOmega_HDD“, jūsų atveju galite jį pervardyti scenarijuje pagal savo atvejį.
Kitas dalykas yra pridėti arba pašalinti katalogus iš kopijos. Tame pačiame scenarijuje kaip komentaro eilutė paaiškinta, kaip tai padaryti.
Norėdami automatizuoti užduotį, prie crontab galite pridėti eilutę, kurioje yra pitono vertėjas ir kelias, į kurį norite įdėti scenarijų. Tikiuosi, kad tai jums naudinga.

Įspėjimas: „WordPress“ redaktorius neleidžia tarpų eilutės pradžioje, todėl scenarijuje buvo prarasta reikalinga įtrauka, todėl tuščias vietas pakeičiau taškais (.), kuriuos turite pašalinti redaktoriumi ir pakeisti tarpais .

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

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


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   Matias sakė

    Labas, kaip tau sekasi?
    Man patiko scenarijus, labai paprastas.
    Jokio įžeidimo, padariau keletą pakeitimų, kad jis būtų paprastesnis ir suprantamesnis, be to, kad palaikyčiau „Python 2“ ir „3“ (šiuo metu jį galima paleisti tik „Python 2“)

    Palieku jums nuorodą su 2 versijomis, jei jus domina.
    http://linkode.org/1np9l2bi8IiD5oEkPIUQb5/Yfa4900cA76BpcTpcf4nG1

    1.    pleiskanos sakė

      Puikūs modai ir aš džiaugiuosi, kad jums patinka scenarijus

  2.   nifosas sakė

    Ketinimas yra vertinamas, bet rezultatas yra lipnus ir dešra.
    Mano 4 metų dukterėčia sugeba sukurti protingesnį ir konfigūruojamą scenarijų nei ši čia įdėta bulvė.

    Beje, kodo įtrauka yra neteisinga, patikrinkite savo kilpas ir aš neturiu omenyje plaukų

    1.    pleiskanos sakė

      Scenarijus veikia puikiai, aš jį naudoju jau seniai ir, tiesą sakant, dėl daugybės juo besidalijančių žmonių, jis neturėtų būti toks kraupus, kaip jūs sakote. Gal turėtumėte paskambinti dukterėčiai, kad sužinotumėte, ar viską padėjote teisingai

    2.    tr sakė

      Ei, mokykis vertinti ir užuot kritikavęs, pataisyk, jei tiek giriesi.

      1.    pleiskanos sakė

        Tiksliai, Matiasas padarė keletą puikių modifikacijų. Be abejo, scenarijų galima patobulinti ir būtent apie jį kalbama bendradarbiavimo pasaulyje ir būtent taip Matiasas jį išreiškė. Gaila, kad čia yra asmenų, kurie sugadina gerą atmosferą, kuri turėtų vyrauti. Ten jie.

    3.    Abaddon s sakė

      Ar manote, kad grubi kritika yra naudinga ir kad ji nieko neprideda prie scenarijaus? GERIAU NERAŠYKITE ŠIKŠTUKO IR PASIDALINKITE JIS !!!!!!!

  3.   Nežinau sakė

    Čia dar viena versija: https://gist.github.com/Itsuki4/5acc3d03f3650719b88d
    Pakomentuokite klaidas, kurias aš ištaisysiu (dabar esu „Windows“ sistemoje ir negalėjau to išbandyti).

  4.   zetaka01 sakė

    Na, aš naudoju „rsync“ tiesiogiai su „shell“ scenarijumi, nenaudodamas „python“.
    Aš dedu eilutę kiekvienam šaltinio ir paskirties katalogui.
    Turiu kelis scenarijus, priklausomai nuo įrenginio, kuriame darau kopiją, mano atveju - palaipsniui.
    Pavyzdžiui, norėdamas nukopijuoti savo knygas į 128 MB USB, kuris pagal numatytuosius nustatymus įdiegtas „Windows“ sistemoje
    / media / zetaka01 / Sandisk128 į scenarijų „LibrosAusb128.sh“ įdėjau šią eilutę:

    rsync -av –delete / home / zetaka01 / Knygos / medija / zetaka01 / Sandisk128 /

    Jei paskirties katalogo nėra, jis jį sukuria jums ir iš paskirties vietos pašalina tai, kas nėra kilmės vietoje, žinoma, rekursyviai.
    Pasisveikinimas.

  5.   zetaka01 sakė

    Ak, kopijavimo / įklijavimo klaida su dviem brūkšneliais.

    Sveikinimas

  6.   pleiskanos sakė

    Ar norite sukurti grafinę sąsają? Aš mačiau „Tkinter“ ir „Tix“ galimybes, tačiau, norint kontroliuoti katalogų pasirinkimą, galbūt geriau yra „Wx“

  7.   zetaka01 sakė

    Jau yra grafinė sąsaja, pagrįsta GTK, ji vadinama grsync.
    Palieku nuorodą į Vikipediją, https://en.wikipedia.org/wiki/Grsync
    Pasisveikinimas.

  8.   Fernando sakė

    Sveiki visi. Scenarijus gali būti stebuklas ar paprastumas, kurio aš nepažįstu ir nesuprantu, bet viską galima pasakyti tūkstančiu būdų, o kai galima gerai pasakyti, kodėl reikia pasakyti neteisingai? Tai pasakius, turiu pasakyti, kad esu „Linux“ vartotojas nuo 2008 m. Ir, nepaisant viso to laiko, aš lėtai mokausi ir man sunku suprasti daug dalykų, įskaitant tai, kaip paleisti scenarijų (žinau, kad tai lengva, bet vienas to nepadaro) daugiau neduok). įdiegti programas kompiliuojant jas ir pan. Štai kodėl, kai perskaičiau, kad yra versija su grafine sąsaja, aš pažiūrėjau ir radau šį puslapį, kuriame jie suteikia jums viską, kas net sukramtyta. Dėl nerangaus kaip serverio palieku jį čia. Sveikinimai ir ačiū už jūsų pastangas.
    http://www.opbyte.it/grsync/download.html

    1.    pleiskanos sakė

      fernando, be jokių rūpesčių ir jei nesinori atsakyti, man įdomu, kodėl jūs naudojate Gnu / Linux. Ačiū ir linkėjimai

  9.   zetaka01 sakė

    Na, grafinė sąsaja yra labai draugiška, tačiau ji nesuteikia jums galimybių, kurias suteikia visa komanda.
    Taip pat ne mano atvejis, kai aš tai darau matuodamas, scenarijus, apvalkalas, pitonas ar bet koks kitas dalykas, leidžia jums užprogramuoti jį paleisti kada tik norite.
    Ak, savo „Linux“ distributoriuje saugyklose turėtumėte turėti rsync ir grsync be problemų.
    Pasisveikinimas.

  10.   zetaka01 sakė

    Ak Fernando, jei „Linux“ naudojate nuo 2008 metų ir nežinote, kaip paleisti scenarijų, neturiu žodžių.
    Sveikinimas

  11.   Gonzalo Martinezas sakė

    Pa čia visi sistemos inžinieriai, kurie kritikuoja scenarijų, kurį kažkas sukuria bendradarbiaudamas, o jei naudoti konsolę / scenarijų ar dar ką nors?

    Kiek šūdo beproti dėl Dievo.

    Aš jau 10 metų valdau „Linux“ serverius ir tiesa yra ta, kad elektroninis montavimas, kai viskas daroma su scenarijais, praėjo prieš kurį laiką, pavyzdžiui, norint administruoti „Bacula“, aš norėčiau apsimesti grafine sąsaja nei apvalkalu tai yra tikrai nusikalstama priemonė.

    Turi būti produktyvus, jei kas nors jaučiasi patogiau tai darydamas sąsaja, gerai jam, svarbu rezultatas, o ne tai, kaip tu tai darai.

    Ankstesniame darbe vadovavau įmonės IT sričiai, o atsakingi žmonės paprašė jo padaryti ką nors konkretaus, domėjausi rezultatu, jis nesakė «Sukonfigūruokite kitą„ vache “apache, naudodami„ vi “be spalvų terminale 30 × 20 “, kad jis tai daro taip, kaip jam patogiausia, jei vaikinas mieliau tai darė, montuodamas SFTP ir naudodamas langų bloknotą ar meldžiantis mūsų Tėvo, man nerūpėjo, kol jis padarė teisingai.

    dandutrech, scenarijus įgyvendina savo tikslą, o tai yra svarbus dalykas. Dabar aš norėčiau pakeisti tai, kad užuot iškvietęs komandą iš apvalkalo, jis staiga naudos „Python-librsync“, kuri yra biblioteka, kad būtų galima naudoti „rsync“ funkcijas „Python“ .

    Tai įgydami perkeliamumą, scenarijus veikia bet kurioje aplinkoje, nesvarbu, ar tai būtų „Linux“, „Windows“ ar OS X.

  12.   DanDutrechas sakė

    Ačiū, Gonzalo. Jūsų pasiūlymas, mano manymu, yra labai geras, ir aš jį įdėsiu į scenarijų. sveikinimas