Вопрос или проблема
При проверке резервных копий файловой системы я обнаружил, что содержимое двух из них не совпадает с данными, которые были сохранены. Ошибок не было зафиксировано. У некоторых файлов были различия по сравнению с оригиналами.
Для выявления этого я использовал sha1sum для создания контрольных сумм для оригиналов и копий. Когда случайно выбранные файлы показали различия, я использовал diff, чтобы подтвердить, что они не одинаковы. Затем я использовал cmp, который также подтвердил, что они не одинаковы, и cmp предоставил смещение для первого различия. Используя hexedit, я визуально подтвердил, что они не одинаковы. Иногда различие составляло всего один или два байта, в то время как у других были большие различия. Один из несовпадающих файлов был zip-файлом, который я выбрал для дальнейшего тестирования. Этот zip-файл сообщил о повреждении, когда я попытался открыть его, тем самым подтвердив, что он неправильный.
Эти файлы копируются на флеш-накопители USB с помощью
cp -r xxx .
внутри сценария оболочки, выполняемого из командной строки. Текущая директория является корнем флеш-накопителя. Ошибок в терминальной сессии, выполняющей команду, не зафиксировано.
Какая техника может быть использована для улучшения целостности этих резервных копий сценариев оболочки?
Это происходит как на версии 22.04, так и на 24.04. Флеш-накопители на 32 ГБ отформатированы в NTFS.
Ответ или решение
Проблема с копированием данных на USB-накопитель без индикации ошибки: решение и рекомендации
При проведении анализа резервного копирования данных на USB-накопитель, вы столкнулись с проблемой несоответствия содержимого файлов и отсутствия каких-либо указаний на ошибки во время процесса копирования. Это может иметь серьезные последствия для ваших данных. В данном ответе мы рассмотрим возможные причины данного явления и предложим подходы для повышения целостности данных в ваших резервных копиях.
1. Причины проблемы
Незначительные различия в файлах, которые вы обнаружили с помощью утилит sha1sum
, diff
, и cmp
, могут быть вызваны несколькими факторами:
- Ошибки записи: USB-накопители, особенно формата NTFS, могут испытывать проблемы с чтением и записью данных. Это может привести к повреждению файлов без очевидных логов ошибок.
- Ошибки файловой системы: Если файловая система на вашем USB-накопителе повреждена или неправильно размечена, это может оказать влияние на процесс копирования.
- Ограничения системы: Некоторые операции на уровне ОС могут блокировать корректное копирование файлов с различными атрибутами и метаданными.
2. Рекомендации по повышению целостности данных
Для повышения целостности ваших резервных копий, обратите внимание на следующие практики:
2.1. Использование проверки целостности
Добавьте в свой скрипт пост-операционные проверки. Например, после выполнения операции копирования, вычисляйте контрольные суммы для файлов на USB и сравнивайте их с оригиналами:
# Копируем файлы
cp -r xxx .
# Проверяем контрольные суммы
find . -type f | while read file; do
if ! sha1sum -c <(echo "$(sha1sum "$file") $file"); then
echo "Error: $file differs!"
fi
done
2.2. Использование rsync
Рассмотрите возможность использования rsync
вместо cp
. Эта утилита не только копирует файлы, но и выполняет проверку их целостности и может восстановить поврежденные файлы:
rsync -av --progress --checksum ./source/ ./destination/
2.3. Форматирование и проверка файловой системы
Откатывайте и форматируйте ваш USB-накопитель, если это возможно, и проверьте его целостность:
sudo ntfsfix /dev/sdX
Где sdX
— это идентификатор вашего устройства.
2.4. Обновление драйверов и системы
Убедитесь, что ваша система обновлена, и используемые вами драйверы для USB-устройств актуальны.
2.5. Использование альтернативных файловых систем
Если допустимо, рассмотрите возможность использования других файловых систем для резервного копирования, таких как ext4, которые могут быть более надежными в работе с Linux.
Заключение
Надеюсь, предложенные методы помогут вам улучшить целостность ваших резервных копий. Проведение регулярных проверок и использование современного инструментария позволит минимизировать риск повреждения данных на USB-накопителе. Систематическое применение данных рекомендаций поможет обеспечить надежность вашего процесса резервного копирования.