LINUX.ORG.RU

История изменений

Исправление deity, (текущая версия) :

тут проще поофтопить — года 3 назад написал на питоне бекапалку и забыл про проблемы. Ну ФС - тупо БД которая завтра, ну или послезавтра точно наебнется. Сейчас куча облачных сервисов (урвал Тб от майлру). Мне хватает 120Гб SSD.

сама идея рекурсивно проходим по файлам


        for include in self.include_dirs:
            for root, dirs, files in os.walk(include, topdown=True):

                for _d in self.exclude_dirs:
                    for _dir_excl in dirs:
                        if _d == os.path.join(root, _dir_excl):
                            dirs.remove(_dir_excl)

                for _file in files:
                    file_ = os.path.join(root, _file)
                    if not file_ in self.exclude_dirs:
                        walking_files.append(file_)

                for _dir in dirs:
                    _folder = os.path.join(root, _dir)

                    if not os.listdir(_folder):
                        walking_files.append(_folder)

Дальше обработка исключенных файлов, или по размеру, по расширению по чему душе угодно...

ЗЫ можно не велосипедить и использовать готовые решения (долго юзал tar со всякими --one-file-system / -X /exl -P. Ну короче бекапить проще чем заботится о состоянии ФС.

Исходная версия deity, :

тут проще поофтопить — года 3 назад написал на питоне бекапалку и забыл про проблемы. Ну ФС - тупо БД которая завтра, ну или послезавтра точно наебнется. Сейчас куча облачных сервисов (урвал Тб от майлру). Мне хватает 120Гб SSD.

сама идея рекурсивно проходим по файлам


        for include in self.include_dirs:
            for root, dirs, files in os.walk(include, topdown=True):

                for _d in self.exclude_dirs:
                    for _dir_excl in dirs:
                        if _d == os.path.join(root, _dir_excl):
                            dirs.remove(_dir_excl)

                for _file in files:
                    file_ = os.path.join(root, _file)
                    if not file_ in self.exclude_dirs:
                        walking_files.append(file_)

                for _dir in dirs:
                    _folder = os.path.join(root, _dir)

                    if not os.listdir(_folder):
                        walking_files.append(_folder)

Дальше обработка исключенных файлов, или по размеру, по расширению по чему душе угодно...