#!/usr/bin/env python3
import sys
import os
import time
import tarfile
# Файлы и каталоги, которые необходимо скопировать, собираются в список.
source = []
source.extend(sys.argv[1:])
# Резервные копии должны храниться в основном каталоге резерва
target_dir = '/home/user/media/Python'
# Именем для архива служит текущая дата и время.
today = target_dir + os.sep + time.strftime('%Y%m%d')
# Текущее время служит именем архива
now = time.strftime('%H%M%S')
# Определение функции для создания архива с помощью tar
def make_tarfile(output_filename, source_dir):
with tarfile.open(output_filename, "w:gz") as tar:
for i in source_dir:
tar.add(i, arcname=os.path.basename(i))
# Выполнение функции
if not source:
print('Список директорий пуст.')
else:
# Запрос комментария пользователя для имени файла
comment = input('Введите комментарий: ')
if len(comment) == 0:
target = today + os.sep + now + '.tar.gz'
else:
target = today + os.sep + now + '_' + \
comment.replace(' ', '_') + '.tar.gz'
# Создаем каталог, если его еще нет
if not os.path.exists(today):
os.mkdir(today) # создание каталога
print('Каталог {} успешно создан.'.format(today))
try:
make_tarfile(target, source)
print('Резервная копия успешно создана в', target)
except FileNotFoundError:
print('Создание резевной копии не удалось: File Not Found')