В 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-летняя племянница может написать более умный и настраиваемый сценарий, чем та картошка, которую вы сюда поместили.
Кстати, отступ в коде неправильный, проверьте свои петли, и я не имею в виду петли для волос
Скрипт работает отлично, я использую его уже давно, и, на самом деле, из-за большого количества людей, которые им поделились, он не должен быть таким хреновым, как вы говорите. Возможно, вам стоит позвонить племяннице, чтобы узнать, все ли вы правильно установили
Эй, научись ценить и вместо критики исправлять, если ты так хвастаешься.
Точно, Матиас внес большие изменения. Безусловно, сценарий можно улучшить, и именно об этом он говорит в мире сотрудничества, и именно это выразил Матиас. Жалко, что здесь есть люди, которые портят благоприятную атмосферу, которая должна преобладать. Вот они.
Считаете ли вы, что грубая критика полезна и что она ничего не добавляет к скрипту? ЛУЧШЕ НЕ НАПИШИТЕ ГРАБАНЫЙ СЦЕНАРИЙ И ПОДЕЛИТЬСЯ !!!!!!
Вот другая версия: https://gist.github.com/Itsuki4/5acc3d03f3650719b88d
Прокомментируйте те ошибки, которые у меня есть, я исправлю (сейчас я в windows и не смог проверить).
Я использую rsync напрямую со сценарием оболочки, без использования python.
Я помещаю строку для каждого каталога источника и назначения.
У меня есть несколько скриптов в зависимости от устройства, на котором я делаю копию, в моем случае инкрементальную.
Например, чтобы скопировать мои книги на USB-накопитель 128 МБ, который по умолчанию установлен в
/ 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
Фернандо, без резкости и, если вы не против ответить, мне любопытно, почему вы используете Gnu / Linux. Спасибо и всего наилучшего
Что ж, графический интерфейс очень удобен, но он не дает вам возможностей, которые дает вам полная команда.
Кроме того, я не делаю это для измерения, скрипт, будь то оболочка или питон или что угодно, позволяет вам запрограммировать его для запуска в любое время.
Ах, в вашем дистрибутиве linux у вас должны быть без проблем в репозиториях rsync и grsync.
Приветствие.
Ах, Фернандо, если вы используете Linux с 2008 года и не знаете, как запускать скрипт, у меня нет слов.
приветствия
Па здесь все системные инженеры, которые критикуют скрипт, который кто-то делает для сотрудничества, и использовать ли консоль / скрипт или что-то еще?
Как много дерьма пердеть, ради бога.
Я управляю серверами Linux в течение 10 лет, и правда в том, что электронная установка для выполнения всего с помощью скриптов передала мне некоторое время назад, например, для администрирования Bacula, я предпочитаю использовать графический интерфейс, чем оболочку, чтобы притвориться важно, что на самом деле является преступным средством.
Нужно быть продуктивным, если кому-то удобнее делать это через интерфейс, что ж, для него важен результат, а не то, как вы это делаете.
На моей предыдущей работе я руководил ИТ-отделом компании, и ответственные люди просили его сделать что-то конкретное, меня интересовал результат, он не сказал «Настройте другой виртуальный хост в apache, используя vi без цвета. в терминале 30 × 20 ”, что он делает это так, как ему удобнее всего, если парень предпочитает делать это так, монтируя по SFTP и используя блокнот Windows, или молитесь нашему Отцу, мне было все равно, пока он сделал это правильно.
dandutrech, сценарий выполняет свою задачу, что является важной вещью, теперь я бы изменил то, что вместо вызова команды из оболочки он внезапно будет использовать Python-librsync, библиотеку для использования функций rsync в Python .
Благодаря этому вы получаете мобильность, скрипт работает в любой среде, будь то Linux, Windows или OS X.
Спасибо, Гонсало. Ваше предложение, я считаю, очень хорошее, и я собираюсь включить его в сценарий. приветствие