У Gnu / Linux існують різні програми для резервного копіювання, але особисто мені подобаються прості речі, далекі від графічних інтерфейсів (які, звичайно, не мають нічого поганого, але якщо я можу уникати його використання, я уникаю).
У команді rsync є грізний союзник резервних копій, який ми часто забуваємо робити. Він має достатньо варіантів для копіювання з усіма необхідними вимогами.
Наступний сценарій 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"
---------------------------
Привіт як ти?
Мені сподобався сценарій, дуже простий.
Не ображаючись, я зробив деякі модифікації, щоб зробити його простішим і читабельнішим, а також підтримку Python 2 і 3 (на даний момент це можна було запустити лише в Python 2)
Якщо ви зацікавлені, я залишаю вам посилання на 2 версії.
http://linkode.org/1np9l2bi8IiD5oEkPIUQb5/Yfa4900cA76BpcTpcf4nG1
Чудові моди, і я радий, що вам сподобався сценарій
Намір оцінений, але результат липкий і ковбасний.
Моя 4-річна племінниця здатна зробити більш розумний і настроюваний сценарій, ніж ця картопля, яку ви тут поклали.
До речі, відступ коду неправильний, перевірте свої петлі, і я не маю на увазі волосся
Сценарій працює ідеально, я використовую його вже давно, і насправді, через кількість людей, які ним діляться, він не повинен бути таким дерьмовим, як ти кажеш. Можливо, вам слід зателефонувати племінниці, щоб перевірити, чи правильно ви все поставили
Гей, навчись цінувати і замість того, щоб критикувати, виправ, якщо ти так хвалишся.
Саме, Matias зробив кілька великих модифікацій. Звичайно, сценарій можна вдосконалити, і саме про це йдеться у світі співпраці, і це висловив Матіас. Шкода, що люди тут поруч, щоб скислити гарну атмосферу, яка повинна панувати. Там вони.
Чи вважаєте ви, що груба критика корисна і що вона нічого не додає до сценарію? КРАЩЕ НЕ НАПИШІТЬ БЛОКУ СЦЕНАРІЮ І ПОДІЛИТЬСЯ !!!!!!!
Ось інша версія: https://gist.github.com/Itsuki4/5acc3d03f3650719b88d
Прокоментуйте мої помилки, я їх виправлю (зараз я перебуваю у вікнах і не міг перевірити).
Ну, я використовую rsync безпосередньо зі сценарієм оболонки, не використовуючи python.
Я ставлю рядок для кожного каталогу джерела та призначення.
У мене є кілька сценаріїв залежно від пристрою, на якому я роблю копію, в моєму випадку поступовий.
Наприклад, щоб скопіювати мої книги на 128 Мб USB, який встановлено за замовчуванням у Windows
/ media / zetaka01 / Sandisk128 Я помістив у сценарій LibrosAusb128.sh такий рядок:
rsync -av –delete / home / zetaka01 / Books / media / zetaka01 / Sandisk128 /
Якщо каталог призначення не існує, він створює його для вас і видаляє з пункту призначення те, що не є початком, звичайно, рекурсивно.
Привітання.
Ах, помилка копіювання / вставлення - видалення з двома дефісами.
вітання
Ви хочете створити графічний інтерфейс? Я бачив можливості Tkinter і Tix, але для контролю вибору каталогів, можливо, Wx краще
Вже існує графічний інтерфейс на основі GTK, він називається grsync.
Я залишаю посилання на Вікіпедію, https://en.wikipedia.org/wiki/Grsync
Привітання.
Привіт всім. Сценарій може бути дивом або простотою, яку я не знаю і не хвилюю, але речі можна говорити тисячами способів, і коли про них можна сказати добре, навіщо говорити про них неправильно? Сказавши це, я повинен сказати, що я користувач Linux з 2008 року, і, незважаючи на весь цей час, я повільно навчаюсь, і мені важко зрозуміти багато речей, включаючи те, як запускати скрипт (я знаю, що це легко, але один більше не дає). встановлювати програми шляхом їх компіляції тощо тощо. Ось чому, коли я прочитав, що існує версія з графічним інтерфейсом, я подивився і знайшов цю сторінку, де вони навіть все жують. Для незграбних як сервер я залишаю це тут. Вітаю та дякую за ваші зусилля.
http://www.opbyte.it/grsync/download.html
fernando, без будь-якої суперечки, і якщо ви не проти відповісти, мені цікаво, чому ви використовуєте Gnu / Linux. Дякую і всього найкращого
Ну, графічний інтерфейс дуже зручний, але він не дає вам опцій, які дає вам повна команда.
Крім того, це не мій випадок, коли я роблю це для вимірювання, скрипт, будь то оболонка чи python, або що завгодно, дозволяє вам запрограмувати його на запуск, коли завгодно.
Ах, у вашому дистрибутиві Linux у вас повинні бути rsync і grsync без проблем у сховищах.
Привітання.
Ах, Фернандо, якщо ви використовуєте Linux з 2008 року і не знаєте, як запустити сценарій, у мене немає слів.
вітання
Чи всі системні інженери тут критикують сценарій, який хтось робить для співпраці, і якщо використовувати консоль / скрипт чи щось інше?
Скільки лайна пердити для бога.
Я керую серверами Linux протягом 10 років, і правда полягає в тому, що електронна ерекція всього, що робиться зі скриптами, передалася мені деякий час тому, наприклад, для адміністрування Bacula, я вважаю за краще використовувати графічний інтерфейс, ніж оболонку, щоб видавати себе за важливим, що насправді є злочинним засобом.
Потрібно бути продуктивним, якщо комусь комфортніше це робити через інтерфейс, добре для нього, важливий результат, а не те, як ти це робиш.
На попередній роботі я керував ІТ-галуззю компанії, і відповідальні люди просили його зробити щось конкретне, мене цікавив результат, він не сказав «Налаштувати інший vhost в apache, використовуючи vi без кольору в терміналі 30 × 20 ”, що він робить це так, як йому найкомфортніше, якщо хлопець вважав за краще робити це так, монтуючи SFTP і використовуючи блокнот Windows, або молиться нашому Отцю, мені було все одно, поки він зробив це правильно.
dandutrech, скрипт виконує свою мету, що є головним, тепер я б змінив те, що замість виклику команди з оболонки він раптом використовував би Python-librsync, яка є бібліотекою для використання функцій rsync в Python .
Завдяки цьому ви отримуєте портативність, сценарій працює в будь-якому середовищі, будь то Linux, Windows або OS X.
Дякую, Гонсало. Ваша пропозиція, на мій погляд, дуже хороша, і я збираюся внести її в сценарій. вітання