О бэкапах

топ 100 блогов hardsign11.02.2025

Между прочим, я тут вместо чтобы трепаться в жежешечке освобождаю место на диске. Внешние диски у меня хоть и надёжные, с Тогдашних Времён™, но всё же иногда надо проверить, насколько актуальны лежащие там данные. Всяких умных Энтерпрайзных Софтин® у меня нет, поэтому приходится обходиться всяким подручным материалом.

Для начала составим список, чего там в этих бэкапах есть. Процедура долгая, так что вполне можно оставить её на ночь. Или на половину рабочего дня.

$ find . -type f | sort | xargs -d '\n' -I {} md5sum {} | tee backup.txt

Потом приводим этот файл к виду, пригодному для сравнения. Во-первых, ключевое поле (полное имя файла) ставим первым, во-вторых, добавляем разделители, которых гарантированно нет в именах файлов, а в-третьих, избавляемся от файлов с нечитаемыми названиями (у меня такой один на примерно четверть миллиона).

$ cat backup.txt | sed -re 's/^([0-9a-f]{32}) (.*)$/\2|\1|/;t;d' > table.txt

Можно, конечно, было сделать это одним конвейером, но ETL-щик во мне сильнее, чем юниксоид. Итого у нас получилось несколько списков, которые можно попарно сравнивать.

Вот, например, поиск файлов, у которых не совпадает контрольная сумма:

$ join -j 1 -t '|' table.txt table.txt | gawk -e 'BEGIN{FS="|"} { if ($2!=$4) print $0 }'

У меня внезапно нашлось две пары таких файлов. Стал разбираться, в чём дело, и выяснил, что в каталоге — два файла с одинаковыми именами. Оба имени содержат букву «й», только в одном случае она набрана как символ «й», а в другом — как комбинация «и» и надстрочного символа. А после того, как они проходят через текстовый конвейер, обе превращаются в полноценную «й». Вот и возникает дублирование...

А вот список файлов, которые есть в первой копии, но нет во второй:

$ join -j 1 -a 1 -t '|' table.txt table.txt | gawk -e 'BEGIN{FS="|"} { if ($4=="") print $0 }'

А вы как развлекаетесь?

Оставить комментарий

Архив записей в блогах:
И ныне всем вам — тоже здравствовать, мои уважаемые и дорогие читатели, друзья, подписчики, клиенты и гости моей странички. Сегодня я продолжаю повествовать о моем личном опыте лечения, затем дальнейшего поиска врачей, и затем уже нормального долечивания. Конечно, долечивания, в тех ...
Я тут обратно Желание гнездоваться, укутываться вещами, прорастать в саду нарастает с каждым месяцем Есть большая вероятность, что то к земле сворачивает. Не хотелось бы Хотя где я, а где планы и намеренья - размело по сторонам. Оставаясь в тишине, научилась жить совсем без мозга. Когда ...
Румыния, 2005 год, 66 дама по имени ADRIANA ILIESCU рожает своего первого ребенка и становится самой старой мамой в мире и попадает в Книгу Рекордов Гиннеса. Титул этот у нее продержался не долго, через год его перебила испанка, которая родила двойню почти в 67 лет. Адриана была ...
Нашла по наводке wolfschanze «Огонёк». Август 1992. №31-33. Стр.31 (с) ...
Если выражаться политкорректно и почти не переходить на личности, то для Гаттарова – это возможность красиво слиться проявить себя в новом качестве и сделать выводы из собственных ошибок.А в принципе, даже и не важно, кто там из МГЕР куда уходит. ...