W Gnu / Linux są różne programy do wykonywania kopii zapasowych, ale osobiście lubię proste rzeczy, z dala od interfejsów graficznych (które oczywiście nie mają nic złego, ale jeśli mogę ich uniknąć, unikam).
W poleceniu rsync jest potężny sojusznik kopii zapasowych, o których często zapominamy. Ma wystarczająco dużo opcji, aby wykonać kopię ze wszystkimi niezbędnymi wymaganiami.
Poniższy skrypt w języku Python tworzy w tym celu kopie zapasowe. Zobaczysz, że jest to niezwykle proste i nawet dla tych, którzy absolutnie nie mają pojęcia o tym języku, dodanie linii skryptu do synchronizacji nowego katalogu jest natychmiastowe.
W moim komputerze używam zewnętrznego dysku twardego, który nazwałem IOmega_HDD, w twoim przypadku możesz zmienić jego nazwę w skrypcie zgodnie z twoim przypadkiem.
Inną rzeczą jest dodanie lub usunięcie katalogów z kopii. W tym samym skrypcie, co w wierszu komentarza, wyjaśniono, jak to zrobić.
Aby zautomatyzować zadanie, możesz dodać linię do crontab zawierającą interpreter języka Python i ścieżkę, w której chcesz umieścić skrypt. Mam nadzieję, że ci się przyda.
ostrzeżenie: edytor wordpress nie zezwala na odstępy na początku wiersza, przez co niezbędne wcięcia w skrypcie zostały utracone, więc puste spacje zastąpiłem punktami (.), które należy usunąć za pomocą edytora i zastąpić spacjami .
-------------------------------
# -*- 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"
---------------------------
Witam, jak się masz?
Podobał mi się scenariusz, bardzo prosty.
Bez obrazy, wprowadziłem pewne modyfikacje, aby było prostsze i bardziej czytelne, a także wspierałem Python 2 i 3 (obecnie można go uruchomić tylko w Pythonie 2)
Zostawiam ci link z 2 wersjami, na wypadek gdybyś był zainteresowany.
http://linkode.org/1np9l2bi8IiD5oEkPIUQb5/Yfa4900cA76BpcTpcf4nG1
Świetne mody i cieszę się, że skrypt Ci się podoba
Zamiar jest doceniany, ale wynik jest lepki i kiełbaski.
Moja 4-letnia siostrzenica jest w stanie stworzyć bardziej inteligentny i konfigurowalny skrypt niż ten ziemniak, który tu umieściłeś.
Nawiasem mówiąc, wcięcie kodu jest złe, sprawdź swoje pętle i nie mam na myśli włosowych
Skrypt działa idealnie, używam go od dłuższego czasu i tak naprawdę ze względu na liczbę osób, które go udostępniają, nie powinien być tak gówniany, jak mówisz. Może powinieneś zadzwonić do swojej siostrzenicy, aby sprawdzić, czy wszystko ułożyłeś poprawnie
Hej, naucz się cenić i zamiast krytykować, poprawiaj, jeśli tak bardzo się chwalisz.
Dokładnie tr, Matias dokonał kilku świetnych modyfikacji. Z pewnością scenariusz można poprawić i o to właśnie chodzi w świecie współpracy i to właśnie wyraził Matias. Szkoda, że są tu ludzie, którzy psują dobrą atmosferę, która powinna panować. Tam oni.
Czy uważasz, że niegrzeczna krytyka jest przydatna i nie dodaje niczego do scenariusza? LEPIEJ NIE PISZ KURWA SKRYPTU I UDOSTĘPNIAJ GO !!!!!!!
Tutaj inna wersja: https://gist.github.com/Itsuki4/5acc3d03f3650719b88d
Skomentuj błędy jakie mam, poprawię to (teraz jestem w windowsie i nie mogłem tego przetestować).
Cóż, używam rsync bezpośrednio ze skryptem powłoki, bez używania Pythona.
Umieściłem wiersz dla każdego katalogu źródłowego i docelowego.
Mam kilka skryptów w zależności od urządzenia, na którym wykonuję kopię, w moim przypadku inkrementalną.
Na przykład, aby skopiować moje książki na dysk USB o pojemności 128 MB, który jest domyślnie instalowany w
/ media / zetaka01 / Sandisk128 Umieściłem w skrypcie LibrosAusb128.sh następującą linię:
rsync -av –delete / home / zetaka01 / Books / media / zetaka01 / Sandisk128 /
Jeśli katalog docelowy nie istnieje, tworzy go dla Ciebie i usuwa z miejsca docelowego to, czego nie ma w źródle, oczywiście rekurencyjnie.
Pozdrowienia.
Ach, błąd kopiuj / wklej – usuń, z dwoma łącznikami.
pozdrowienia
Chcesz stworzyć interfejs graficzny? Widziałem możliwości Tkinter i Tix, ale do kontroli wyboru katalogów być może Wx jest lepszy
Istnieje już interfejs graficzny oparty na GTK, nazywa się grsync.
Zostawiam link do Wikipedii, https://en.wikipedia.org/wiki/Grsync
Pozdrowienia.
Cześć wszystkim. Scenariusz może być cudem lub prostotą, której nie znam lub nie obchodzi mnie, ale rzeczy można powiedzieć na tysiące sposobów, a kiedy można to powiedzieć dobrze, po co mówić źle? Powiedziawszy to, muszę powiedzieć, że jestem użytkownikiem Linuksa od 2008 roku i pomimo tego całego czasu powoli się uczę i trudno jest mi zrozumieć wiele rzeczy, w tym, jak uruchomić skrypt (wiem, że to łatwe, ale nie nie dawać więcej). instaluj programy, kompilując je itp. itp. Dlatego kiedy przeczytałem, że istnieje wersja z interfejsem graficznym, przeszukałem i znalazłem tę stronę, na której nawet dają ci wszystko przeżute. Dla niezdarnych jako serwer zostawiam to tutaj. Pozdrawiam i dziękuję za wysiłek.
http://www.opbyte.it/grsync/download.html
Fernando, bez żadnych ostrych zgrzytów i jeśli nie masz nic przeciwko odpowiedzi, jestem ciekawy, dlaczego używasz Gnu / Linuksa. Dziękuję i pozdrawiam
Cóż, interfejs graficzny jest bardzo przyjazny, ale nie daje ci opcji, które daje ci pełne polecenie.
Ponadto nie jest moim przypadkiem, że robię to na potrzeby pomiaru, a skrypt, czy to powłoka, python czy cokolwiek chcesz, pozwala zaprogramować go tak, aby działał w dowolnym momencie.
Ach, w swojej dystrybucji Linuksa powinieneś mieć rsync i grsync bez problemów w repozytoriach.
Pozdrowienia.
Ah Fernando, jeśli używasz Linuksa od 2008 roku i nie wiesz, jak uruchomić skrypt, nie mam słów.
pozdrowienia
Pa, czy wszyscy inżynierowie systemów tutaj krytykują skrypt, który ktoś robi, aby współpracować, i czy używać konsoli / skryptu, czy czegokolwiek?
Ile gówna pierdnąć na Boga.
Od 10 lat zarządzam serwerami linuksowymi, a prawda jest taka, że elektroniczna erekcja robienia wszystkiego ze skryptami minęła mi jakiś czas temu np. Do administrowania Baculą wolę używać interfejsu graficznego niż powłoki, ważne, co jest naprawdę środkiem kryminalnym.
Trzeba być produktywnym, jeśli ktoś czuje się bardziej komfortowo, robiąc to przez interfejs, cóż, dla niego liczy się wynik, a nie sposób, w jaki się to robi.
W mojej poprzedniej pracy kierowałem obszarem IT firmy, a osoby odpowiedzialne poprosiły go o zrobienie czegoś konkretnego, byłem zainteresowany wynikiem, nie powiedział: „Skonfiguruj innego vhosta w apache, używając vi bez koloru w terminalu 30 × 20 ”, że robi to tak, jak mu najwygodniej, gdyby facet wolał to robić tak, montując przez SFTP i korzystając z okienkowego notatnika, czy modląc się do naszego Ojca, nie przejmowałem się tak długo zrobił to dobrze.
dandutrech, skrypt spełnia swój cel, co jest ważne, teraz zmieniłbym to, że zamiast wywoływać polecenie z powłoki, nagle używałby Python-librsync, który jest biblioteką do używania funkcji rsync w Pyton.
Dzięki temu zyskujesz przenośność, skrypt działa w dowolnym środowisku, czy to Linux, Windows czy OS X.
Dzięki, Gonzalo. Uważam, że Twoja sugestia jest bardzo dobra i zamierzam umieścić ją w scenariuszu. pozdrowienie