Создать резервную копию целого каталога

Вопрос или проблема

Safecopy может спасти файл или раздел с неисправного жесткого диска. Но что, если вы хотите спасти целую директорию? Похоже, в safecopy нет способа сделать это.

Существует ли команда, которая будет запускать safecopy рекурсивно для каждого отдельного файла в директории и помещать его в соответствующее место на спасенном носителе?

У меня есть огромный, неисправный диск, но мне нужно спасти только одну директорию с него.

Я не знаю, создаёт ли Safecopy отсутствующие директории в целевом пути, поэтому создадим их сначала:

cd /media/newdrive/billrescue
find /media/brokendrive/Users/bill/Documents -type d -printf "%P\0" |
    xargs -0 echo mkdir -p

Теперь мы вызываем safecopy для каждого файла:

cd media/brokendrive/Users/bill/Documents
find . -type f -exec echo safecopy {} /media/newdrive/billrescue/{} \; | head

Удалите echo и | head, если вывод соответствует вашим потребностям.

Или:

find /media/brokendrive/Users/bill/Documents -type f -printf "%P\0" |
    xargs -0 -I{} echo safecopy /media/brokendrive/Users/bill/Documents/{} /media/newdrive/billrescue/{}

Ответ или решение

Safecopy — это инструмент, предназначенный для восстановления файлов или разделов с поврежденных жестких дисков. Однако его изначальная функциональность не предполагает непосредственного восстановления целых каталогов. Это может создать сложности, если вам нужно восстановить лишь один конкретный каталог с большого, поврежденного диска. Решение данной задачи требует более глубокой проработки.

Теория

В рамках командной строки Unix/Linux с использованием утилиты find возможно выполнение рекурсивных операций с каждым отдельным файлом внутри заданного каталога. Это может быть полезно для автоматизации процесса, когда необходимо обработать каждую единицу данных по отдельности. Комбинируя find с xargs и safecopy, можно достичь желаемого результата: восстановления всех файлов внутри определённого каталога с сохранением структуры директорий.

safecopy сам по себе не создаст директории на новом носителе, по крайней мере, это не описано в его стандартных функциональных возможностях. Следовательно, перед началом процесса копирования необходимо рекурсивно создать требуемую структуру директорий.

Пример

Представим, ваша задача состоит в восстановлении каталога /media/brokendrive/Users/bill/Documents на поврежденном диске. Вам необходимо скопировать его файлы на новый диск по пути /media/newdrive/billrescue. Для этого мы сначала создадим нужную структуру директорий, а затем с помощью safecopy перезапишем каждое из файлов.

Для создания структуры директорий используем следующую команду:

cd /media/newdrive/billrescue
find /media/brokendrive/Users/bill/Documents -type d -printf "%P\0" | xargs -0 mkdir -p

Данная команда делает следующее:

  1. Переключается на целевой раздел, где будет производиться восстановление.
  2. Использует find для поиска всех директорий в указанном каталоге на исходном, поврежденном диске.
  3. Для каждой найденной директории создается соответствующая структура на новом носителе с помощью команды mkdir -p.

После создания директории переходим к процессу восстановления файлов. Используем:

find /media/brokendrive/Users/bill/Documents -type f -printf "%P\0" | xargs -0 -I{} safecopy /media/brokendrive/Users/bill/Documents/{} /media/newdrive/billrescue/{}

Здесь мы:

  1. Опять используем find, чтобы собрать список всех файлов в исходной директории.
  2. xargs обрабатывает каждый файл индивидуально, вызывая safecopy для копирования его на новый носитель.

Применение

Такой подход позволяет автоматизировать процесс восстановления данных в условиях, когда план восстановления всего диска неразумен, а необходимость сосредоточиться лишь на определенной информационной структуре критична. Следует отметить, что перед тем как удалить echo из представленных команд, нужно убедиться в правильности отображенного результата. Это делается для того, чтобы избежать случайного перезаписывания нецелевых данных.

find и xargs — мощные инструменты командной строки, которые предоставляют большую свободу во взаимодействии с файлами и каталогами. Их комбинация с safecopy делает процесс восстановления данных управляемым и эффективным при условии повреждения физических носителей.

Заключение

Для успешного выполнения задачи по восстановлению каталога с поврежденного носителя, необходимо четкое понимание инструментов командной строки и их грамотное использование. Safecopy совместно с find и xargs позволяет структурировать рабочий процесс, минимизировать риски потери данных и сосредоточиться на необходимом наборе информации. В современных условиях, когда надежность и гарантии сохранения данных становятся критически важными, умение эффективно использовать такие инструменты должно стать обязательным навыком для IT-специалиста.

Оцените материал
Добавить комментарий

Капча загружается...