V Gnu / Linuxu obstajajo različni programi za varnostno kopiranje, vendar so mi osebno všeč preproste stvari, daleč od grafičnih vmesnikov (ki seveda nimajo nič narobe, če pa se temu lahko izognem, se izognem).
V ukazu rsync je mogočen zaveznik varnostnih kopij, ki ga pogosto pozabimo narediti. Ima dovolj možnosti za kopiranje z vsemi potrebnimi zahtevami.
Naslednji skript python v ta namen naredi varnostne kopije. Videli boste, da je zelo preprost in celo za tiste, ki tega jezika nimajo popolnoma pojma, je dodajanje vrstice za skript za sinhronizacijo novega imenika takoj.
V svojem računalniku uporabljam zunanji trdi disk, ki sem ga imenoval IOmega_HDD, v vašem primeru pa ga lahko v skriptu preimenujete glede na vaš primer.
Druga stvar je dodati ali odstraniti imenike iz kopije. V istem skriptu kot vrstica za komentar je razloženo, kako to storiti.
Za avtomatizacijo naloge lahko v crontab dodate vrstico, ki vsebuje interpreter python in pot, kamor želite postaviti skript. Upam, da je koristno za vas.
Opozorilo: urejevalnik wordpress ne dovoljuje presledkov na začetku vrstice, zato je v skriptu izgubljena potrebna vdolbina, zato sem prazne presledke zamenjal s pikami (.), ki jih morate odstraniti z urejevalnikom in zamenjati s presledki .
-------------------------------
# -*- 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"
---------------------------
Živjo kako si?
Všeč mi je bil scenarij, zelo preprost.
Brez zamere sem naredil nekaj sprememb, da je bil enostavnejši in bolj berljiv, poleg tega da podpira Python 2 in 3 (trenutno ga je mogoče izvajati samo v Pythonu 2)
Če vas zanima, pustim povezavo do dveh različic.
http://linkode.org/1np9l2bi8IiD5oEkPIUQb5/Yfa4900cA76BpcTpcf4nG1
Odlični modi in vesel sem, da vam je scenarij všeč
Namero cenimo, rezultat pa je lepljiv in klobasa.
Moja 4-letna nečakinja je sposobna narediti bolj inteligenten in prilagodljiv scenarij od tega krompirja, ki ste ga dali tukaj.
Mimogrede, zamik kode je napačen, preverite svoje zanke in ne mislim na tiste lasne
Skript deluje odlično, uporabljam ga že dolgo in pravzaprav zaradi števila ljudi, ki si ga delijo, ne bi smel biti tako nor, kot pravite. Mogoče bi morali poklicati svojo nečakinjo in preveriti, ali ste vse pravilno postavili
Hej, nauči se ceniti in namesto kritiziranja popravi, če se tako hvališ.
Matias je naredil nekaj velikih sprememb. Vsekakor je scenarij mogoče izboljšati in to je tisto, za kar gre v svetu sodelovanja, in tako je Matias to izrazil. Škoda, da so tu posamezniki, da kisijo dobro vzdušje, ki bi moralo vladati. Tam so.
Se vam zdi, da je nesramna kritika koristna in da ne doda ničesar k skriptu? BOLJŠE NE PIŠITE PRESRNEGA SKRIPTA IN DELITE !!!!!!!
Tu je še različica: https://gist.github.com/Itsuki4/5acc3d03f3650719b88d
Komentirajte napake, ki jih imam, jih bom popravil (zdaj sem v operacijskem sistemu Windows in ga nisem mogel preizkusiti).
No, rsync uporabljam neposredno s skriptom lupine, ne da bi uporabil python.
Za vsak izvorni in ciljni imenik sem dal vrstico.
Imam več skriptov, odvisno od naprave, v kateri delam kopijo, v mojem primeru postopno.
Na primer, da kopiram svoje knjige na 128 MB usb, ki je privzeto nameščen v
/ media / zetaka01 / Sandisk128 V skript LibrosAusb128.sh sem dal naslednjo vrstico:
rsync -av –delete / home / zetaka01 / Books / media / zetaka01 / Sandisk128 /
Če ciljni imenik ne obstaja, ga ustvari za vas in iz cilja izbriše tisto, kar ni v izvoru, seveda rekurzivno.
Pozdrav.
Ah, napaka pri kopiranju / lepljenju - brisanje z dvema vezajema.
pozdrav
Ali želite ustvariti grafični vmesnik? Videl sem možnosti Tkinterja in Tixa, toda za nadzor izbire imenikov je morda boljši Wx
Na osnovi GTK že obstaja grafični vmesnik, ki se imenuje grsync.
Pustim povezavo do Wikipedije, https://en.wikipedia.org/wiki/Grsync
Pozdrav.
Pozdravljeni vsi skupaj. Scenarij je lahko čudo ali preprostost, ki je ne poznam ali me ne zanima, vendar je mogoče stvari povedati na tisoče načinov in če jih je mogoče reči dobro, zakaj jih rečem narobe? Po tem moram povedati, da sem uporabnik Linuxa od leta 2008 in kljub vsem tem časom se počasi učim in težko razumem marsikaj, vključno s tem, kako zagnati skript (vem, da je to enostavno, toda ne ne dam več). namestite programe tako, da jih sestavite itd. itd. Zato sem, ko sem prebral, da obstaja različica z grafičnim vmesnikom, iskal in našel to stran, kjer vam celo dajo vse prežvečeno. Za nerodnega strežnika ga pustim tukaj. Lep pozdrav in hvala za vaš trud.
http://www.opbyte.it/grsync/download.html
fernando, brez kakršnega koli ogorčenja in če vas ne moti odgovoriti, me zanima, zakaj uporabljate Gnu / Linux. Hvala in lep pozdrav
No, grafični vmesnik je zelo prijazen, vendar vam ne daje možnosti, ki vam jih ponuja celoten ukaz.
Poleg tega ni moj primer, da to počnem po meri, saj vam skript, naj bo lupina ali python ali karkoli želite, omogoča, da ga programirate, da se zažene, kadar koli želite.
Ah, v vašem linux distribucijskem sistemu bi morali imeti v repozitorijih brez težav rsync in grsync.
Pozdrav.
Ah Fernando, če uporabljate linux od leta 2008 in ne veste, kako zagnati skript, nimam besed.
pozdrav
Ali so tukaj vsi sistemski inženirji, ki kritizirajo skript, ki ga nekdo naredi za sodelovanje, in če uporablja konzolo / skript ali kaj drugega?
Koliko sranja prdeti za božjo voljo.
S strežniki Linux upravljam že 10 let in resnica je, da me je elektronsko postavljanje vsega, kar delam s skripti, že pred časom minilo, na primer za skrbništvo nad Baculo, raje uporabljam grafični vmesnik kot lupino, da se pretvarjam, da sem kar je resnično kaznivo sredstvo.
Človek mora biti produktiven, če se nekdo počuti udobneje, če to počne prek vmesnika, zanj je pomemben rezultat, ne pa, kako to storite.
V prejšnji službi sem vodil področje informacijske tehnologije v podjetju in odgovorni so ga prosili, naj naredi nekaj konkretnega, zanima me rezultat, ni rekel «Konfigurirajte še en vhost v apacheju, z uporabo vi brez barve v terminalu 30 × 20 ”, da to počne tako, kot je najbolj udobno, če je fant to raje naredil tako, da je montiral s SFTP in uporabljal okenski beležnik ali molil našega očeta, mi je bilo vseeno, dokler je naredil prav.
dandutrech, skript izpolni svoj cilj, kar je pomembno, zdaj pa bi spremenil, da namesto da bi ukaz iz lupine nenadoma uporabil Python-librsync, ki je knjižnica za uporabo funkcij rsync v Pythonu .
S tem pridobite prenosljivost, skript se izvaja v katerem koli okolju, pa naj bo to Linux, Windows ali OS X.
Hvala, Gonzalo. Vaš predlog se mi zdi zelo dober in ga bom podal v scenarij. Pozdrav