О бэкапах

топ 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 }'

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

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

Архив записей в блогах:
...
Добралась я таки до ЖЖ, чтобы изложить события последних дней. Честно постараюсь рассказать все спокойно и без мата, хотя желание пристрелить того козла, который подписал приказ о новом порядке госпитализации, крепнет с каждым днем. К сожалению не знаю номера приказа и его уровня ...
Трамп отметил, что иранцы сами обращаются к нему. "Они звонят мне и хотят говорить" Когда его попросили назвать того, кто именно звонил, он уклонился от прямого ответа. "Те же люди, с которыми мы работали в прошлый раз... Многие из них сейчас ...
Вчера, после того я забрала свои читалки, я отправилась на прогулку по красивым фотоместам, опираясь на список из группы газеты «Петербургский дневник». И не прогадала — с погодой так точно, прошлась по снегу. А с фотоместами: часть мест из списка вычеркнула как не интересные, но зато ...
По тэгу «сплетни» Однажды Уинстон Черчиль с женой Клементиной зашёл на рынок. И там она остановилась у одного лотка и беседовала с его хозяином – довольно долго. Уинстон потом спросил про этот разговор. Клементина ответила, что была знакома с этим человеком – очень давно, в юности. И ...