Новая версия скрипта для бэкапа. Или другая версия...
Логика работы с файлами-списками не поменялась. Поменялся только параметр скрипта - теперь это имя архива без расширения, скрипт сам добавит
.tar.gz
.
Новое:
- Создание архива переместилось из внешнего архиватора внутрь скрипта. Создаётся tar.gz архив.
- Все пути теперь системо-зависимы, т.е. скрипт должен работать на линуксах тоже
Кроме приятного нового, повились неприятный минус - скрипт стал жрать кучу памяти.
Сделать сжатый архив с помощью модуля tarfile не вышло. Архив создаётся и сжимается, но внтури архива пути почему-то съезжают.
Т.е. нужно создать архив
d:\dropbox\my dropbox\backup\backup.tar.gz
, он там появляется. Но если открыть этот gz архив, tar архив будет глубоко внутри по пути
dropbox\my dropbox\backup\backup.tar
. Т.е. полный путь до данных получается такой:
d:\dropbox\my dropbox\backup\backup.tar.gz\dropbox\my dropbox\backup\backup.tar\...
. В принципе с этим можно жить, но некрасиво...
Поэтому сделал по-другому - сначала создаётся tar архив без сжатия со всеми файлами, затем он сжимается. Вот в этом месте функции, сжимающей архив, он, архив, передаётся целиком, т.е. весь файл весом несколько сот Мб засасывается в память.
Надо бы ещё покопать в эту сторону и найти лучшее решение...
import sys
import os
import os.path
import tarfile
import time
import gzip
__author__="race1"
__date__ ="$09.09.2009 19:55:06$"
if __name__ == "__main__":
if (len(sys.argv) < 2):
print("Usage: backup.py
Комментариев нет:
Отправить комментарий