python скрипт для резервного копирования

Бэкап при помощи Python

Примеры вариантов простых бакапов в Python

Бэкап данных можно выполнять и в Python, используя как собственные средства языка программирования так и внешние программы.
Хотите быть уверенными в сохранности данных и не знаете как настроить бэкап, воспользуйтесь услугами резервного копирования

1) Вариант: Бэкап Python + WinRaR

import os
import time

# Файлы и каталоги, которые необходимо скопировать, собираются в список.
source=[‘»D:\\bases-1c\\База1с\\1Cv8.1CD»‘, ‘C:\\Code’]
print(‘Я должен сделать’,len(source),’Бэкапа(ов)’)

dstdir=’E:\\backup’
print(dstdir,’-папка для бэкапа’)

dst = dstdir + os.sep + time.strftime(‘Year-%Y.%m.%d_’) + time.strftime(‘hour-%H.%M.%S’) + ‘.rar’
print(‘Там будет создан файл-‘, dst)

«»»os.sep – разделитель пути для конкретной операционной системы,
‘/’ в GNU/Linux ‘\\’ в Windows и ‘:’ в Mac OS.
Использование os.sep делает программу переносимой для ОС»»»

if os.system(rar)==0:
print(‘Резервная копия успешно создана в’, dst)
else:
print(‘Создание резервной копии НЕ УДАЛОСЬ’)

2) Вариант: Бэкап Python + Tarfile

date = time.strftime(‘Date-%Y.%m.%d_’)
time = time.strftime(‘Hour-%H.%M.%S_’)

#Переходим в каталог
os.chdir(‘C:\\My Documents’)
#Получаем текущую деректорию
directory = os.getcwd()
#Получаем список
contents = os.listdir()

tar = tarfile.open(‘E:\\backup\\’+ date + ‘.tar.gz’, «w:gz»)

# 1) Добавляем в архив всю папку C:\\My Documents
for i in contents:
tar.add(i)

tar.add(‘C:\\one\\’)
# 2) Добавляем еще в архив
tar.add(bases1c, arcname=time+’Bases.1CD’)

members = tar.getmembers()
print (members[0].name, ‘- «То же самое но при помощи getmembers»‘)
print (members[0].isdir(), ‘- «И проверить на истинность»‘)
tar.close()

# в результате получаем весь список из C:\\My Documents, а так же по файлу указанных в
# C:\\one\\o1.doc и D:\\bases-1c\\База1С\\1Cv8.1CD
# arcname применен для определения имени в архиве

3) Вариант: системные команды Python

Так же не забываем, что команды системы Windows, Linux могут быть выполнены в Python, что дает возможность использовать встроенные команды самой системы.

Пример выполнения xcopy(системной команды) из Python

Источник

Создание резервной копии файлов

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Создание резервной копии
import os import time source = target_dir = «D:\\python codes» # Подставьте тот путь.

Создание резервной копии
Добрый день. Извиняюсь за тупняк. Учу питон по книжке на винде в PyCharm. 1.import os 2.import.

python скрипт для резервного копирования. tick. python скрипт для резервного копирования фото. python скрипт для резервного копирования-tick. картинка python скрипт для резервного копирования. картинка tick. Бэкап данных можно выполнять и в Python, используя как собственные средства языка программирования так и внешние программы. Хотите быть уверенными в сохранности данных и не знаете как настроить бэкап, воспользуйтесь услугами резервного копированияСоздание резервной копии файлов
Доброго времени суток. мне посоветовали такой.

просто введи zip и энтер, должен инфу выдать, если установлен

Добавлено через 40 секунд
а гнувин32 вообще для чего тут?

Вложения

python скрипт для резервного копирования. zip. python скрипт для резервного копирования фото. python скрипт для резервного копирования-zip. картинка python скрипт для резервного копирования. картинка zip. Бэкап данных можно выполнять и в Python, используя как собственные средства языка программирования так и внешние программы. Хотите быть уверенными в сохранности данных и не знаете как настроить бэкап, воспользуйтесь услугами резервного копированияbzip2-1.0.5-bin.zip (154.7 Кб, 37 просмотров)
python скрипт для резервного копирования. zip. python скрипт для резервного копирования фото. python скрипт для резервного копирования-zip. картинка python скрипт для резервного копирования. картинка zip. Бэкап данных можно выполнять и в Python, используя как собственные средства языка программирования так и внешние программы. Хотите быть уверенными в сохранности данных и не знаете как настроить бэкап, воспользуйтесь услугами резервного копированияzip-3.0-bin.zip (563.4 Кб, 37 просмотров)

А зачем все так сложно(я не знаю что там в книге, но если не обязательно использовать GnuWin32, то:

DmFat, Да, далее в книге говорят что можно сделать и так. Спасибо

Добавлено через 34 секунды
tooru, Ура, наконец-то получилось. Спасибо большое!)

Добавлено через 57 секунд
Garry Galler, спасибо большое, буду знать если вдруг что

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Программа, которая создаёт резервные копии файлов
Учу «Укус питона» и там есть пример программы, которая у меня не работает import os import time.

python скрипт для резервного копирования. tick. python скрипт для резервного копирования фото. python скрипт для резервного копирования-tick. картинка python скрипт для резервного копирования. картинка tick. Бэкап данных можно выполнять и в Python, используя как собственные средства языка программирования так и внешние программы. Хотите быть уверенными в сохранности данных и не знаете как настроить бэкап, воспользуйтесь услугами резервного копированияСоздание резервной копии файлов
Разработать программу, выполняющую поиск в текущем каталоге файлов по указанной пользователем.

Автоматическое создание резервной копии файлов проекта (visual studio 2013)
Можно ли сделать так, чтобы при сохранении проекта текущие файлы записывались в отдельную папку.

Источник

Простой самодельный бэкап данных (Python + DropBox)

Бэкапы я не делал давно. Было лень, да и данные я не терял уже несколько лет. Но недавно задумался об этом и решил-таки сделать что-то такое, что резервно сохраняло бы то, что не очень хочется потерять. Просто что бы скучно не было, и немного попрактиковаться.

Для начала нужно определиться где хранить копии файлов. По-моему DropBox это очень хороший выбор — это сервис для синхронизации данных на разных компьютерах. Бесплатно дают 2 Гб, плюс программу, которая отображает выбранную локальную папку на ихнее онлайн хранилище. Добавил файл в эту специальную папку — он добавился на всех компьютерх, на которых стоит специальная программа, настроенная на тот же аккаунт. Плюс доступ через веб-интерфейс. Для бэкапа это очень удобно — не надо заморчиваться как скопировать файлы на FTP, а просто копируем их в специальную папку. Всё работу по заливке/синхронизации сделает DropBox клиент.

Дальше нужно собственно скопировать необходимые файлы. Для этого был написан крохотульный скрипт на питоне, backup.py. Этот скрипт создаёт текстовый список файлов, которые нужно скопировать, и передаёт его WinRar’у, который создаёт архив с указанным именем.

Сначала я хотел полностью поручить WinRar’у создание бэкапа, написав немного кода в батниках, но к сожалению он не умеет пропускать заданные папки (только файлы). Поэтому пришлось писать промежуточный скрипт, который создаёт список файлов. Ну и хорошо, так даже веселее.

У скрипта есть единственный параметр — имя выходного файла-архива со скопированными файлами.

Я не зря указывал, что скрипт берёт файлы из текущей папки. Благодаря этому делать разные «профили» очень просто — достаточно создать новую папку, создать там файл tobackup.lst, опциональные ignore.lst и extra.lst, и новый профиль готов! Для удобства можно сделать батник, который будет вызывать backup.py и передавать ему имя файла-архива который должен получиться.

Сейчас, например, у меня есть две папки-профиля, projects (для бэкапа текущих проектов) и other (для бэкапа настроек программ). Сам скрипт лежит в папке core (на том же уровне что и папки профилей), вместе с WinRar’ом.

Папка core:
Rar.exe
WinRAR.exe
rarreg.key
backup.py

Папка projects:
tobackup.lst:
d:\projects
d:\svn

ignore.lst:
.svn
d:\projects\old

backup.bat:
..\core\backup.py «d:\dropbox\my dropbox\backup\dev.rar»

Батник backup.bat вызывает скрипт, передеаёт ему имя получающегося файла-архива, который будет создан в папке, связанной с DropBox. Скрипт берёт файлы-списки из текущей папки (projects в данном случае). Один запуск батника — новый бэкап готов, и DropBox грузит его на сервер.

Осталось прикрутить запуск по расписанию, но меня устроит и ручной запуск несколько раз в месяц.

for dir in dirs:
# Skip ignored folders
if (dir.lower() in ignoreList or (» %s\%s » % (root, dir)).lower() in ignoreList):
dirs.remove(dir)

# Append some files from extra files list
if (os.path.isfile(ExtraFile)):
out.writelines(open(ExtraFile, » r «).readlines())

out.close()

print(» Added %d file(s) » % (filesCount))

Источник

Резервное копирование-архивирование каталогов с помощью Python 3

В целях предварительного знакомства со скриптовым языком python я написал небольшой скрипт копирования-архивирования каталогов из заданного списка. Представляю вам этот скрипт:

import glob
import os
import datetime
import shutil
#Настройки:
#Путь к основному каталогу откуда надо копировать
pathtodata=»w:/Base_1c»
#Название каталогов, которые надо копировать с их содержимым:
organiz = [«Folder_01»,
«Folder_02»,
«Folder_03»,
«Folder_04»,
«Folder_05»,
«Folder_06»
]
# делаем каталог для копий по текущему времени
# по умолчанию должен быть создан каталог e:/_backups/
dt = datetime.datetime.now()
currentdate = dt.strftime(‘%Y_%m_%d-%H%M’)
os.mkdir(‘e:/_backups/’+currentdate)

# все сделал
print(«все сделано»)

КАК РАБОТАТЬ СО СКРИПТОМ:

1. Для начала нужно скачать и установить python 3.2. можно скачать здесь http://python.org/download/

2. Скопируйте скрипт из статьи и сохраните его в текстовый файл с расширением *.py (например, backup.py)

3. Создайте на диске e: каталог _backups и поместите туда этот файл backup.py

4. Настройте список копируемых каталогов в скрипте и сохраните его:

4.1. В моем примере скрипта мои копируемые каталоги лежат в общем каталоге на диске w:\Base_1c

В системе должен быть установлен winRar для создания архивов

Источник

Десятимиллионный скрипт резервного копирования

python скрипт для резервного копирования. c3105c9f6441d7747d8671b15d9356dc. python скрипт для резервного копирования фото. python скрипт для резервного копирования-c3105c9f6441d7747d8671b15d9356dc. картинка python скрипт для резервного копирования. картинка c3105c9f6441d7747d8671b15d9356dc. Бэкап данных можно выполнять и в Python, используя как собственные средства языка программирования так и внешние программы. Хотите быть уверенными в сохранности данных и не знаете как настроить бэкап, воспользуйтесь услугами резервного копирования
Это статья-мануал по скрипту резервного копирования, написанному мной. Скрипт написан на python для Linux. Кому интересно прошу под хабракат.

Возможности

Установка

В /etc/apt/source.list добавить:

И выполнить в терминале:

Обновление пакета выполняется командой:

ИЛИ
Вручную скачать пакет командой:

ИЛИ
Для дистрибутивов, отличных от Ubuntu/Debian выполнить:

И скопировать файлы ddd и py4backup в директорию с бинарными файлами (обычно /usr/bin), файл py4backup_lib.py в директорию библиотек python. Также потребуется поставить зависимости вручную. Необходим python 3.x, btrfs-tools (btrfs-progs), lvm2, rsync. В папке examples/ вы найдете примеры конфигурационных файлов. Их необходимо скопировать в /etc/py4backup/

Настройка

После установки необходимо скопировать конфигурационные файлы из примера. Для этого выполните:

И откройте файл py4backup.conf на редактирование текстовым редактором.
Для boolean параметров допустимо использование True/False, yes/no или 1/0.
Отделять параметр от его значения можно символами ‘=’ или ‘:’.
Каждый параметр должен находится в своей секции. Название секции пишется перед набором параметров в квадратных скобках (‘[]’)
Порядок следования параметров в секции и секций не важен. Если параметр не указан в конфигурационном файле, то используется стандартное значение.
Пример конфигурационного файла:

Рассмотрим параметры подробней:
[MAIL]: здесь определяются параметры отправки уведомлений через email.
send_mail_reports: включает/выключает отправку email отчетов после выполнения задания.
login: логин для входа на smtp сервер.
passwd: пароль для входа на smtp сервер.
sendto: получатели уведомления. Можно вписать несколько адресов через пробел.
server: доменное имя или IP адрес smtp сервера.
port: порт smtp сервера.
tls: включает/выключает использование TLS шифрования.

[DD]: здесь указываются параметры создания резервных копий с помощью программ DD и DDD.
bs: размер блока для программы DD (Используется для создания полных копий LVM томов). Можно указывать размер в байтах, килобайтах (k) и мегабайтах (M). Влияет на скорость создания копии. Оптимальное значение- 32M.
ddd_bs: размер блока для программы DDD (Используется для создания дифференциальных копий LVM томов). Можно указывать размер в байтах. Чем больше размер, тем больше места занимает дифференциальная копия, но тем быстрее она создается. Оптимальное значение- 4096.
ddd_hash: алгоритм хеширования блоков. Возможен выбор между md5, crc32 и None. MD5 сильнее нагружает процессор, чем crc32 и занимает больше места, но в случае использования md5 намного меньше шанс коллизий.
None выключает создание чек сумм. Время создания резервной копии, ее размер и нагрузка на процессор минимальны, но в случае повреждения резервной копии вы не будете знать об этом. Не рекомендуется к использованию.

[LOGGING]: настройка ведения журнала заданий.
logpath: путь до журнала. Если вы используете не стандартное размещение журнала не забудьте поменять настройки logrotate.
enable_logging: включает/выключает ведение журнала.
log_with_time: включает/выключает добавление к каждой записи журнала даты и времени.
traceback: включает/выключает добавление traceback’ов в лог при ошибках. Полезно при отладке.
command_output: включает/выключает добавление в лог консольного вывода команд. Полезно при отладке.

Задания

Общие сведения

Список заданий находится в файле /etc/py4backup/jobs.conf
Пример задания:

Типы резервного копирования

Рассмотрим их поближе.

file-full
file-diff

Создает дифференциальную резервную копию от источника (sopath) и последней полной копией, найденной в папке назначения (dpath). Если полная копия не будет найдена выполнение задания завершиться ошибкой.
Список параметров аналогичен типу ‘file-full’.

btrfs-full

Данный тип аналогичен типу ‘file-full’, но перед созданием резервной копии делается снапшот резервируемой директории и копия снимается уже со снапшота.
Для этого типа резервного копирования необходимо указание параметра snpath. В папке, указанной в snpath будет создан временный снапшот исходной папки (sopath). Причем указанный там путь должен находится на одной файловой системе с папкой, указанной в sopath. Обратите внимание, что копируется только содержимое данного subvolume файловой системы. Все примонтированные папки и вложенные subvolume будут проигнорированы. Список остальных параметров аналогичен типу ‘file-full’.

btrfs-diff

При этом типе рез. копирования сначала с исходной папки (sopath) снимается снапшот, а затем создается дифференциальная копия от снапшота и последней полной копией, найденной в папке назначения (dpath). Если полная копия не будет найдена выполнение задания завершиться ошибкой.
Так же, как и для типа ‘btrfs-full’ необходимо, что бы папка для снапшота (snpath) находилась на одной файловой системе с исходной папкой (sopath).
Обратите внимание, что копируется только содержимое данного subvolume файловой системы. Все примонтированные папки и вложенные subvolume будут проигнорированы. Список остальных параметров аналогичен типу ‘file-full’

btrfs-snap

Данный тип создает снапшоты от исходной папки, указанной в sopath в папку снапшотов, указанную в snpath.
Для данного типа не работают параметры exclude, include, dpath. Так же, как и для типа ‘btrfs-full’ необходимо, что бы папка для снапшотов (snpath) находилась на одной файловой системе с исходной папкой (sopath).
Обратите внимание, что копируется только содержимое данного subvolume файловой системы. Все примонтированные папки и вложенные subvolume будут проигнорированы.

lvm-full

Этот тип предназначен для создания полных копий LVM томов. Рассмотрим некоторые особенности данного типа. В параметре sopath указывается путь до Logical Volume Group (VG). Например:
sopath = /dev/main_vg/
По умолчанию скрипт сделает копию всех томов, находящихся в данном VG.
Параметр dpath указывает где сохранять резервную копию. Указывать удаленные хосты в качестве назначения резервной копии нельзя. Для того, что бы сделать копии только нужных томов можно использовать параметры include и exclude.
Параметр exclude указывает какие тома исключить из резервной копии. Кроме того он принимает кодовое слово all, обозначающее, что надо исключить все тома.
Параметр include указывает какие тома нужно включить в резервную копию. Имеет приоритет над exclude. Например:

сделает резервную копию только томов mail и root. А следующий пример сделает копию всех томов, кроме тома mail:

lvm-diff

И последний (для версии 1.5) тип резервного копирования предназначен для создания дифференциальных копий LVM томов.
Скрипт ищет в папке назначения (dpath) последнюю полную резервную копию и если находит, создает дифференциальную копию между ней и снапшотом текущего состояния. В папке назначения при этом появятся 2 файла *-diff.dd и *-diff.ddm Они ОБА необходимы для восстановления.
Все параметры аналогичны типу lvm-full

Запуск

Восстановление

Вот мы и подошли к самому интересному. Резервное копирование само по себе ничего не стоит, без возможности быстро восстановить резервную копию. В данном разделе я опишу типичные кейсы восстановления из резервных копий, созданных скриптом.

Файловые бэкапы

В обоих случаях в папке назначения вы получите полную копию данных, готовую к использованию.

Восстановление снапшотов

Таким образом мы во первых сделали наши данные доступными для записи и обезопасили их. Даже когда скрипт согласно ротации удалит снапшот от 2014-06-19 наш свежесозданный снапшот будет цел.

Восстановление полных бэкапов LVM

Тут все совсем просто.
Необходимо создать новый LVM том, размера равного или больше резервной копии и скопировать на него резервную копию с помощью dd.
Пример:

Восстановление дифференциальных бэкапов LVM

И мы хотим восстановить резервную копию за 2014-06-19 на устройство /dev/main_vg/volume Для этого выполним команду:

Предположим полная копия была перемещена в папку /backup_old/:

После восстановления ddd выведет список поврежденных блоков с указанием файла, где находится поврежденный блок. Запись full23 указывает на повреждение блока номер 23 в файле полной копии, а запись diff24 на повреждение блока 24 в дифференциальной копии.

Tips & Tricks

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *