Создавать бэкапы - хорошая практика. Но что, если архив оказался битым в самый нужный момент? 😱 Разберемся, как проверять целостность архивов, чтобы не потерять важные данные.
1️⃣ Проверка tar-архива. Если архив создавался с помощью tar, его можно проверить без распаковки:
tar -tvf backup.tar.gz
Если файл поврежден, команда выдаст ошибку:
gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now
🧑💻 Автоматическая проверка в скрипте:
if tar -tzf backup.tar.gz &>/dev/null; then
echo "Архив исправен"
else
echo "Архив поврежден!"
fi
2️⃣ Проверка архивов .zip. Для .zip можно использовать встроенную проверку:
unzip -t backup.zip
Если файл битый, команда выдаст ошибки.
🧑💻 Автоматическая проверка в скрипте:
if unzip -t backup.zip | grep -q "No errors detected"; then
echo "Архив исправен"
else
echo "Архив поврежден!"
fi
3️⃣ Проверка и автоматическое исправление rar. Если архив в формате .rar, его можно проверить так:
rar t backup.rar
Если архив поврежден, rar может попытаться его восстановить:
rar r backup.rar
4️⃣ Защита от битых архивов при создании
📁 Контрольные суммы. Считаем SHA256-хеш перед передачей или копированием:
sha256sum backup.tar.gz > backup.sha256
А потом проверяем:
sha256sum -c backup.sha256
📦 Двойная упаковка с тестированием
tar -cvf - logs/ | gzip | tee backup.tar.gz | gzip -t
📌 Здесь tee дублирует поток, а gzip -t сразу проверяет целостность.
BashTex 📱 #linux #utils