Python скрипт за локални архиви с rsync

В Gnu / Linux има различни програми за извършване на архивиране, но аз лично харесвам прости неща, далеч от графични интерфейси (които нямат нищо лошо, разбира се, но ако мога да избегна използването му, избягвам).
В командата rsync има страхотен съюзник на архивите, който често забравяме да направим. Разполага с достатъчно опции за копиране с всички необходими изисквания. компютър-767784_640

Следният скрипт на python прави резервни копия за тази цел. Ще видите, че е изключително просто и дори за тези, които нямат абсолютно никаква представа за този език, добавянето на ред за скрипта за синхронизиране на нова директория е незабавно.
В моята машина използвам външен твърд диск, който нарекох IOmega_HDD, във вашия случай можете да го преименувате в скрипта според вашия случай.
Друго нещо е да добавите или премахнете директории от копието. В същия скрипт като реда за коментар е обяснено как да го направите.
За да автоматизирате задачата, можете да добавите ред към crontab, съдържащ интерпретатора на python и пътя, където искате да поставите скрипта. Надявам се да ви е полезно.

предупредителен: редакторът на wordpress не позволява интервал в началото на реда, поради което необходимото отстъп в скрипта е загубено, затова замених празните интервали с точки (.), които трябва да премахнете с редактор и да ги замените с интервали .

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

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


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   Matias каза той

    Здравей, как си?
    Хареса ми сценарият, много прост.
    Без обида, направих някои модификации, за да го направя по-опростен и четим, в допълнение към поддържането на Python 2 и 3 (в момента може да се изпълнява само в Python 2)

    Оставям ви линка с 2-те версии, в случай че се интересувате.
    http://linkode.org/1np9l2bi8IiD5oEkPIUQb5/Yfa4900cA76BpcTpcf4nG1

    1.    Dandutrech каза той

      Страхотни модове и се радвам, че ви харесва сценария

  2.   нифозио каза той

    Намерението е оценено, но резултатът е лепкав и наденица.
    Моята 4-годишна племенница е способна да направи по-интелигентен и конфигурируем сценарий от този картоф, който сте поставили тук.

    Между другото, отстъпът на кода е грешен, проверете веригите си и нямам предвид косите

    1.    Dandutrech каза той

      Сценарият работи перфектно, аз го използвам отдавна и всъщност, поради броя на хората, които го споделят, не би трябвало да е толкова скапан, както казвате. Може би трябва да се обадите на племенницата си, за да видите дали сте сложили всичко правилно

    2.    tr каза той

      Ей, научи се да цениш и вместо да критикуваш, поправи, ако се хвалиш толкова много.

      1.    Dandutrech каза той

        Точно tr, Matias направи някои страхотни модификации. Със сигурност сценарият може да бъде подобрен и за това става въпрос в света на колаборацията и това е, което Matias изрази. Жалко е, че хората са наоколо, за да вдигнат добрата атмосфера, която трябва да надделее. Там те.

    3.    абадон с каза той

      Смятате ли, че една груба критика е полезна и че не добавя нищо към скрипта? ПО-ДОБРЕ НЕ ПИШЕТЕ ПРОСТО СЦЕНАРИЙ И СПОДЕЛЕТЕ ГО !!!!!!!

  3.   Не знам каза той

    Ето още една версия: https://gist.github.com/Itsuki4/5acc3d03f3650719b88d
    Коментирайте грешките, които имам, ще го поправя (сега съм в windows и не можах да го тествам).

  4.   зета01 каза той

    Ами аз използвам rsync директно със скрипт на обвивката, без да използвам python.
    Слагам ред за всяка директория източник и дестинация.
    Имам няколко скрипта в зависимост от устройството, на което правя копието, в моя случай постепенно.
    Например да копирам книгите си на 128MB usb, който е инсталиран по подразбиране в
    / media / zetaka01 / Sandisk128 Сложих в скрипта LibrosAusb128.sh следния ред:

    rsync -av –delete / home / zetaka01 / Books / media / zetaka01 / Sandisk128 /

    Ако директорията на дестинацията не съществува, тя я създава за вас и изтрива от дестинацията това, което не е в произхода, разбира се рекурсивно.
    За поздрав.

  5.   зета01 каза той

    А, грешка при копиране / поставяне - изтриване с две тирета.

    поздравления

  6.   Dandutrech каза той

    Искате ли да създадете графичен интерфейс? Виждал съм възможностите на Tkinter и Tix, но за контрол на избора на директории може би Wx е по-добър

  7.   зета01 каза той

    Вече има графичен интерфейс, базиран на GTK, той се нарича grsync.
    Оставям връзката към Уикипедия, https://en.wikipedia.org/wiki/Grsync
    За поздрав.

  8.   Фернандо каза той

    Здравейте всички. Сценарият може да бъде чудо или простота, не знам и не ме интересува, но нещата могат да се казват по хиляди начини и когато могат да се кажат добре, защо да ги кажете погрешно? След като казах това, трябва да кажа, че съм потребител на Linux от 2008 г. и въпреки всичкото това време бавно се уча и трудно разбирам много неща, включително как да стартирам скрипт (знам, че е лесно, но човек не дава повече). инсталирайте програми, като ги компилирате и т.н. и т.н. Ето защо, когато прочетох, че има версия с графичен интерфейс, погледнах и намерих тази страница, където ви дават всичко, дори дъвчено. За непохватния като сървър го оставям тук. Поздрави и благодарности за усилията.
    http://www.opbyte.it/grsync/download.html

    1.    Dandutrech каза той

      fernando, без никакви укори и ако нямате нищо против да отговорите, интересно ми е защо използвате Gnu / Linux. Благодаря и всичко хубаво

  9.   зета01 каза той

    Е, графичният интерфейс е много приятелски настроен, но не ви дава опциите, които ви дава пълната команда.
    Също така, не е моят случай да го правя за измерване, скрипт, бил той черупка или питон или каквото искате, ви позволява да го програмирате да се изпълнява, когато пожелаете.
    А, във вашата Linux дистрибуция трябва да имате rsync и grsync без проблеми в хранилищата.
    За поздрав.

  10.   зета01 каза той

    Ах Фернандо, ако използвате linux от 2008 г. и не знаете как да стартирате скрипт, нямам думи.
    поздравления

  11.   Гонсало Мартинес каза той

    Та, тук ли са всички системни инженери, които критикуват скрипта, който някой прави, за да си сътрудничат, и ако да използват конзола / скрипт или нещо друго?

    Колко лайна да пука за бога.

    Управлявам Linux сървъри от 10 години и истината е, че електронната ерекция за правене на всичко със скриптове ми мина преди малко, например, за да администрирам Bacula, предпочитам да използвам графичния интерфейс, отколкото черупката, за да се преструвам, че е важен, което наистина е престъпно средство .

    Човек трябва да бъде продуктивен, ако някой се чувства по-удобно да го прави през интерфейса, добре за него, важното е резултатът, а не как го правите.

    В предишната си работа ръководех ИТ областта на компания и отговорниците го помолиха да направи нещо конкретно, интересувах се от резултата, той не каза «Конфигуриране на друг vhost в apache, използвайки vi без цвят в терминал 30 × 20 ”, че го прави, както му е най-удобно, ако човекът предпочете да го направи така, монтирайки се чрез SFTP и използвайки бележника на windows, или се моли на нашия Отец, не ми пукаше, стига да го направи както трябва.

    dandutrech, скриптът изпълнява целта си, което е важното, сега това, което бих променил е, че вместо да извиква командата от черупката, внезапно ще използва Python-librsync, която е библиотека за използване на функциите rsync в Python.

    С това получавате преносимост, скриптът работи във всякаква среда, било то Linux, Windows или OS X.

  12.   dandutrecht каза той

    Благодаря, Гонсало. Вашето предложение мисля, че е много добро и ще го включа в сценария. поздрав