Резервное копирование-архивирование каталогов с помощью Python 3
В целях предварительного знакомства со скриптовым языком 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 для создания архивов
Так же это скрипт можно поставить как назначенное задание.
Комментарии по улучшению этого скрипта приветствуются. Кому поможет — буду рад.

