Дата:2014-01-28
Бэкап данных можно выполнять и в Python, используя как
собственные средства языка программирования так и внешние программы.
Хотите быть уверенными в сохранности данных и не знаете
как настроить бэкап, воспользуйтесь услугами резервного
копирования
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 делает программу переносимой для ОС"""
rar
= "C:\PROGRA~1\WinRAR\WinRAR.exe u -as -dh {0} {1}".format(dst, '
'.join(source))
''' format - подставляет аргументы {0}=dst, {1}=source
Метод join преобразовывает список в строку '''
if
os.system(rar)==0:
print('Резервная копия успешно создана
в', dst)
else:
print('Создание резервной копии НЕ
УДАЛОСЬ')
#!/usr/bin/env
python
# -*- coding: utf-8-*-
import os
import tarfile
import time
import sys
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")
bases1c = "D:\\bases-1c\\База1С\\1Cv8.1CD"
# 1) Добавляем в архив всю папку C:\\My Documents
for i in contents:
tar.add(i)
tar.add('C:\\one\\')
# 2) Добавляем еще в архив
tar.add(bases1c, arcname=time+'Bases.1CD')
names = tar.getnames()
print (names, '- "Здесь мы получаем содержимое архива"')
print (names[0], ' - "А Здесь его первый элемент"')
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 применен для определения имени в архиве
Так же не забываем, что команды системы Windows, Linux могут
быть выполнены в Python, что дает возможность
использовать встроенные команды самой системы.
Пример выполнения xcopy(системной команды) из Python
dir = os.system(r'xcopy D:\bases-1c\buh-1c\1Cv8.1CD D:\backup\ /D /E /H /Y /O')
Количество просмотров: 9186
Комментарии к статье:
Добавить комментарий