#!/usr/bin/env python3
import sys
import os
import time
import tarfile
# Файлы и директории, которые необходимо скопировать, собираются в список.
source = []
source.extend(sys.argv[1:])
condition = True
# Путь к директории, где хранятся бэкапы
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))
# Проверка правильности путей в аргументах
for i in source:
if not os.path.exists(i):
sys.exit('Error: Some argument is not found')
else:
pass
# Выполнение функции
# Проверка на пустой список
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))
# Вызов функции
make_tarfile(target, source)
print('Резервная копия успешно создана в', target)