LINUX.ORG.RU

eXdupe — быстрый консольный архиватор файлов с дедупликацией и дифференциальным резервным копированием

 , , , ,


1

3

https://www.exdupe.net.

eXdupe 3tar+zstdkopiaresticDuplicacyzpaq647-Zip flzma2Duplicati
Time9.76 s14.2 s14.8 s24.8 s77.0 s112 s209 s360 s
Size7.34 GB10.6 GB9.93 GB9.21 GB11.4 GB8.18 GB9.42 GB10.2 GB

Исходный код на C и C++: https://github.com/rrrlasse/eXdupe, GNU GPL 2.0+.

Версия 3.0.0 от 30 июня:

  • Новый алгоритм хеширования для значительного повышения скорости и степени сжатия.
  • Быстрая обработка несжимаемых данных со скоростью дискового ввода-вывода.
  • Обнаружение и быстрая обработка файлов с полностью идентичным содержимым.
  • Одновременный обход каталогов для значительного ускорения обработки небольших файлов.
★★★★★

Последнее исправление: dataman (всего исправлений: 2)
Ответ на: комментарий от ValdikSS

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

timdorohin ★★★★
()
Последнее исправление: timdorohin (всего исправлений: 1)
Ответ на: комментарий от firkax

About: It uses its own sliding-window deduplication library to find identical data blocks as small as 4 KB at byte grannularity positions across terabytes

No ★★
()
Ответ на: комментарий от wandrien

вот и хорошо, что не модно, то надёжно и проверенно

daniyal
()

Таблица без указания, на каких данных это получено, сильно теряет.

greenman ★★★★★
()
Ответ на: комментарий от greenman

C 66.5%

Исправил, но большая часть на C – это zstd, pthread и Lua.

$ exdupe -u?

You can provide a Lua script that gets called for each item during backup:
  exdupe -u"return true" . backup.full

If the script returns true the item will be added, else it will be skipped.

You can reference following variables:
  path:   Absolute path
  is_*:   Boolean variables is_dir, is_file, is_link
  name:   Name without path
  ext:    Extension or empty if no period exists
  size:   Size in bytes
  attrib: Result of chmod on Linux. On Windows you can reference the booleans
          FILE_ATTRIBUTE_READONLY, FILE_ATTRIBUTE_HIDDEN, etc.
  time:   Last modified time as os.date object. You can also reference these
          integer variables: year, month, day, hour, min, sec

Helper functions:
  contains({list}, value): Test if the list contains the value

All Lua string functions work in utf-8. If path, name or ext are not valid
utf-8 it will be converted by replacing all bytes outside basic ASCII (a-z, A-Z,
0-9 and common symbols) by '?' and then passed to your script.

String and path comparing is case sensitive, but string.upper() and string.
lower() will only change basic ASCII letters. Any other letters remain
unchanged.

Remember to return true for directories in order to traverse them.

Examples:
  -v0 -u"print('added ' .. path .. ': ' .. size); return true"
  -u"return year >= 2024 or is_dir"
  -u"return size < 1000000 or is_dir"
  -u"return not contains({'tmp', 'temp'}, lower(ext))"
dataman ★★★★★
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.