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

26.04.12

База данных - Архивирование (backup)

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

В целях предварительного знакомства со скриптовым языком 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)

for org in organiz:
    print(org+" копирование...")
    # скопируем все каталоги в созданный
    # копирование дерева  - откуда - куда
    shutil.copytree(''+pathtodata+'/'+org+'', 'e:/_backups/'+currentdate+'/'+org+'/')

# заархивируем все что скопировано
names = glob.glob('e:/_backups/'+currentdate+'/*')
for name in names:
    if os.path.isdir(name):
        # заархивировать все name используем winrar 4.01
        print (name+" архивирование каталога...")
        # ключ -df удаляет скопированные каталоги после архивирования
        os.system(r'c:/"Program Files"/"winrar"/rar.exe a -r -ep1 -df '+name+' '+name+' ')

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

 

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

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

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

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

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

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

4.2. В скрипте отредактируете список organiz. В этом списке через запятую укажите те каталоги, которые лежат в общем каталоге и которые нужно скопировать. У меня это Folder_01, Folder_02... Folder_06.

5. Скрипт готов к работе - можно его запустить, если все сделано правильно, то:

Результат работы скрипта: в существуещем каталоге e:/_backups/ появляется каталог с текущей датой и временем - например: 2012_04_25-2000, в котором размещены архивы каталогов Folder_01.rar, Folder_02.rar, Folder_03.rar ... Folder_06.rar

 

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

 

Так же это скрипт можно поставить как назначенное задание.

Комментарии по улучшению этого скрипта приветствуются. Кому поможет - буду рад.

 

 



Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Архивирование (backup) Инструменты администратора БД 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS! Версия 1.4 от 28.05.2026

7320 руб.

06.11.2012    80479    635    45    

94

Информационная безопасность Архивирование (backup) Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Утром базы не открылись: ночью хакеры зашифровали серверы, базы 1С, почту, кассы, мобильные приложения и бэкапы в сети. Критичные базы подняли из копий на отключённых дисках и потеряли около 10 часов данных. Рассказываю, как прошли первые сутки, что увидел только человек, что мы закрыли после атаки и какие двери в самой базе 1С программист может проверить у себя уже сегодня.

10.11.2026    14338    nedomolkov.ivan    63    

17

Архивирование (backup) Обновление 1С Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Платформа 8.3.17, MS SQL Server: обновление конфигурации падает через 15 секунд на этапе обновления предопределённых данных, и конфигуратор при каждом входе предлагает только повторить. Проверьте у себя, когда сделана последняя полная копия базы: у нас её не было почти месяц. Разбор по минутам: что не помогло (перезапуск агента сервера 1С, перезагрузка, пакетный /UpdateDBCfg, три совета со стороны) и почему. Как ibcmd достал .dt из базы, которая не открывается, и как новую базу подставили под старым именем в кластере 1С через rac, не трогая пользователей. Простой 57 минут, потерь данных нет. Отдельно ошибки ИИ-агента Claude, который работал на сервере, и порядок действий на случай, если это случилось у вас.

03.11.2026    679    nedomolkov.ivan    13    

5

Архивирование (backup) Инструменты администратора БД Системный администратор Разработчик 1С 8.3 1С:Управление торговлей 11 1С:Библиотека стандартных подсистем Абонемент ($m)

Полностью автоматизированная внешняя обработка для администрирования 1С: блокировка/разблокировка ИБ, массовое завершение сеансов, резервное копирование и восстановление из .dt, выгрузка/загрузка конфигурации (.cf), пакетная работа с расширениями (.cfe) и дополнительными обработками – всё через удобную форму без ручных запусков конфигуратора и консоли кластера

1 стартмани

21.01.2026    6550    66    war41k    0    

18

Архивирование (backup) Групповая разработка (Git, хранилище) Системный администратор Разработчик Бесплатно (free)

Как дать возможность каждому разработчику 1С вести разработку, тестирование и оптимизацию на собственной полноразмерной копии базы и при этом не тратить миллиарды рублей и тысячи часов на развертывание тестового окружения, а так же экономить дисковое пространство? Расскажем о том, как с помощью инструмента Database Lab получать полноразмерные копии базы 1C на СУБД PostgreSQL за считанные секунды (даже в случае использования многотерабайтных баз).

15.12.2025    14237    nasonkin    19    

31

Архивирование (backup) Учет документов Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

В текущих версиях 1С пока нет функции, позволяющей автоматически отмечать возврат оригиналов документов с помощью сканера штрих-кодов. Многие контрагенты часто сталкиваются с проблемой утери оригиналов УПД или их невозврата. В ответ на эти запросы было разработано расширение, которое упрощает контроль за возвратом оригиналов документов и помогает лучше организовать их хранение.

12200 руб.

19.02.2025    2962    3    0    

3

Архивирование (backup) Системный администратор 1С 8.3 Бесплатно (free)

Предлагаю Вашему вниманию 3 скрипта на bash (sh) для архивирования (backup) типовых конфигураций на Linux средствами 1С и Postgres. Перед запуском корректно заполните раздел "Параметры" в соответствии с Вашими настройками.

20.01.2025    6001    Prelude    5    

12

Архивирование (backup) 1С 8.3 1С:Библиотека стандартных подсистем Абонемент ($m)

Резервные копии базы 1С без завершения сеансов: .dt, файл базы, PostgreSQL, MS SQL, своя команда. Расписание, профили, ротация, ZIP, FTP, журнал и письмо об ошибке. Платформа 8.3+ (кроме 8.2), любая конфигурация с БСП. Подключение за 5 минут.

5000 руб.

27.08.2024    4169    1    6    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. cool.vlad4 2 26.04.12 15:10 Сейчас в теме
Комментарии по улучшению этого скрипта приветствуются.
скрипт прост как 5 копеек, единственно, что - 1. нужно всегда разделять логику и настройки, выделить настройки в какой-нибудь конфиг (txt, xml и т.д.) , тогда удобно будет менять параметры. 2. заменить платный winrar на бесплатное( 7-zip например) 3. логировать успехи и неудачи
ЗЫ. Это просто пожелания, мне собственно это не нужно.
2. Asis 02.05.12 17:57 Сейчас в теме
По-моему вместо WinRar лучше использовать встроенный модуль zipfile.
Пример:
import zipfile

....
    
    with zipfile.ZipFile(arc_filename, 'a', zipfile.ZIP_DEFLATED) as arc_file:
        arc_file.write(source, filename)

    # arc_filename - имя файла архива.
    # source - путь к исходному файлу.
    # filename - имя файла в архиве.

...

Показать
3. sttt 116 02.05.12 20:09 Сейчас в теме
(2) Asis, боюсь ZipFile будет хуже, потому как наверное ограничение в 4 гига будет а у рара нет
4. Asis 02.05.12 23:15 Сейчас в теме
(3) sttt, вы правы,
действительно есть такое ограничение для zip-файлов до версии спецификации 4.5.
Пожалуй соглашусь, что, несмотря на поддержку модулем zipfile расширения ZIP64 (до 16Гб), следует использовать внешние архиваторы для объемных информационных баз.
5. aximo 2772 03.05.12 05:27 Сейчас в теме
да я как-то не задумывался о выборе архиватора... просто ключи winrar мне давно известны, вот и применил их... а так все работает, нормально, без сбоев. что называется - запустил 1 раз и забыл...
6. quick 587 22.08.13 11:42 Сейчас в теме
есть на тему бэкапа хорошее фриварное решение http://www.cobiansoft.com но оно только под винду.
а скрипт можно под себя еще доделать, так что спасибо автору.
7. Rockman 24.09.13 11:57 Сейчас в теме
На тему бэкапа есть еще одно неплохое решение - VersionSafe
8. Vovan58 64 26.02.18 12:55 Сейчас в теме
конкатенация строк при создании пути - не катит.
os.path.join()
- рулит
9. avbolshakov 05.01.23 11:13 Сейчас в теме
10. Vovan58 64 05.01.23 11:36 Сейчас в теме
(9) спасибо, в тему. Сейчас скрипты бэкапов обновляю.
Для отправки сообщения требуется регистрация/авторизация