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.
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"
---------------------------
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
Skvelé režimy a som rád, že sa vám scenár páči
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é
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
Hej, nauč sa vážiť si a namiesto kritiky oprav, ak sa tak chváliš.
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.
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 !!!!
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ť).
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.
Aha, chyba kopírovania / vkladania - odstránenia, s dvoma spojovníkmi.
Pozdrav
Chcete vytvoriť grafické rozhranie? Videl som možnosti Tkintera a Tixa, ale pre kontrolu výberu adresárov je možno lepší Wx
Grafické rozhranie založené na GTK už existuje, volá sa grsync.
Nechávam odkaz na Wikipédiu, https://en.wikipedia.org/wiki/Grsync
Pozdrav.
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
fernando, bez prudkosti a ak ti nebude vadiť odpovedať, som zvedavý, prečo používaš Gnu / Linux. Ďakujeme a ostávame s pozdravom
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.
Ah Fernando, ak používate Linux od roku 2008 a neviete, ako spustiť skript, nemám slov.
Pozdrav
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.
Vďaka, Gonzalo. Váš návrh je podľa mňa veľmi dobrý a uvediem ho v scenári. pozdrav