Диагностика проблем 1С через контрольные суммы

Опубликовано 8 апр. 2026 г.

Всем привет.

У меня на этой неделе случилась беда. На одной машине пользователя стала глючить 1с. Уже и кэши очищали, и машину перезагружали - глючит и все. Пало подозрение на повреждение самой 1с.

 читать первым в телеграм    читать первым в макс

Можно было бы просто переставить, и забыть. Но мне хотелось именно убедиться, что проблема на диске.

Нужно просто рекурсивно сравнить два каталога по содержимому файлов. Каталог со старой установкой переименовал, поставил заново и начал сравнивать.

Проще всего это сделать с помощью rsync:

rsync -ncrv /old1c /1c

-n (–dry-run) — только тестирование

-c (–checksum) — по содержимому

-r (–recursive) — рекурсивно

-v (–verbose) — подробности

Вот только ставить на клиентскую машину rsync ради одного сравнения, так себе идея. Да и если забыть ключик -n, можно убить данные. Решил сделать все костылями:

find  /old1c /1c -type f -printf "%f " -exec md5sum {} \; |
awk '{print $2,$1}'|sort |uniq -c|awk '$1%2'

-type f — только файлы

-printf "%f " — печатаем basename

-exec md5sum {} \; — для каждого файла вычисляем md5

|awk '{print $2,$1}' — сначала md5, потом файл (не принципиально, но красивее)

|sort |uniq -c — на первой позиции - число уникальных записей. Без sort uniq не работает.

|awk '$1%2' — печатаем только строки, с нечетным числом записей.

Tagd Tagd
Tagd Tagd
Bash Master
Задать вопрос
Поскольку сравниваем два предположительно одинаковых каталога, то в идеале, файлы должны быть в четном количестве. Если у файлов c одинаковыми basename разная md5, то их число будет нечетным.

В общем, как я и предполагал, нашлись файлы с разной контрольной суммой. Значит повреждение было на диске. Ну, и после переустановки 1с, проблема ушла.

На самом деле проблема не такая редкая. Дело в дисках. Есть такая характеристика как Неисправимых ошибок чтения/прочитанных бит.

Например, на wd blue 1E-14, на wd gold 1E-15, на SSD Micron 7450 MAX 1e-17. То есть серверный ssd в 1000 раз надежней, чем бюджетный hdd. Просто не всегда эти ошибки одинаково заметны.

Кстати, rsync работает значительно быстрее. Если данных много — используйте его.

Всем работы без багов.

Комментарии