LINUX.ORG.RU

Как восстановить только что удалённый через консоль файл?

 , , ,


0

1

В который раз грохнул ненужный скрипт, оказавшийся нужным. Не то, чтобы было очень жалко, но лень переписывать. Да и кроется мысль а если удалю нужное, то как восстановить? Есть пробел в знаниях, компенсируемый только 98% аккуратностью)

  • УСЛОВИЯ: rm через консоль, Manjaro
  • ВОПРОС: как восстановить файл без регистрации и смс или хотя бы найти его содержимое не поиском hexedit по всему устройству? Должна же быть простая прикладная утилита? Желательно имеющимися в радиусе AUR средствами. Желательно без демонтажа устройства - примем за условие что это отдельный стораж, и никто пока не пишет вна него.

Вроде бы extundelete что-то такое должен уметь?

★★★☆

Последнее исправление: hikikomori (всего исправлений: 1)

примем за условие что это отдельный стораж, и никто пока не пишет вна него.

если даже если так, но на нём работает trim, то скорей всего ой

madcore ★★★★★
()

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

skyman ★★★★★
()
Ответ на: комментарий от skyman

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

+1. И мэйлы за 20 лет, и прочую бюрократию. Периодически git fetch на несколько географически разнесенных хостов, и к себе в кладовку на всякий. Такъ победимЪ!

x22 ★★★
()
Ответ на: комментарий от skyman

Проблема гита, что всё в него не засунешь, а разнородные бэкапы (что-то в гите, что-то где-то ещё) мучительно делать вручную и сложно автоматизировать. Проще чем-то одним всё и сразу.

Да и не каждому нужно репо для скриптов.

kaldeon ★★
()

Нужно сначала определить проблему.

Если проблема в том, что иногда нечто удаляет твои файлы, то это, считай, отказ твоего хранилища. Решение — бекапы. Про бекапы выше уже написали, здесь есть огромное количество тем, для примера можно упомянуть схему «3–2–1».

Если проблема в том, что у твоего хранилища нет отмены для rm my_script.sh, то нужно выбирать ФС с поддержкой таковой. Примеры, уверен, ниже напишут, если ещё не.

Если проблема в том, что rm применяется сразу, то можно подключить VCS (условно, Git) для важного, а можно написать себе замену вида rm() { mv $@ /trash/; }.

Если проблема в том, что среди неважных файлов лежат важные, то нужно просто порядок навести.

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

anonymous
()
Ответ на: комментарий от kaldeon

Проблема гита, что всё в него не засунешь, а разнородные бэкапы (что-то в гите, что-то где-то ещё) мучительно делать вручную и сложно автоматизировать. Проще чем-то одним всё и сразу.

Всё и не нужно. Но вот скрипты как раз идеально ложатся в гит. Поднял много лет назад виртуалку с gitea и храню там все свои скррипты, конфиги и остальной код. Идеально.

Да и не каждому нужно репо для скриптов.

Пока скрипт один-два и редко меняется, то да. Но если их больше или несколько серверов, то я уже вижу смысл в vcs.

skyman ★★★★★
()

УСЛОВИЯ: rm через консоль, Manjaro

Главное - это файловая система и носитель. С ext4 и без trim восстановить можно: photorec. Не ext4 без trim - не знаю. Что угодно с trim - вероятнее всего поезд ушёл.

AS ★★★★★
()

первым делом dd-образ раздела…
ну а девушки - а девушки потом… :)
как мысль еще навайбкодить клона dd, который будет копировать с раздела только свободное пространство :)

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)

У меня была похожая проблема, написал себе прогу, можешь тоже ей пользоваться. Да, это поиск по всему диску, и он найдёт не только последнюю версию файла, но возможно и много старых. Но не «hexedit» а автоматически.

Найти случайно затёртый с диска исходник

firkax ★★★★★
()

Использую subvolume в BTRFS со снапшотами каждый час. А так же хранением месяц, откат что файла, что полностью системы занимает 5 минут. Можно ZFS, но на с timeshift не работает.

Philip2007
()

С btrfs из снапшота. Без него просишь нейронку написать скрипт который открывает блочное устройство и читает данные по n- байт кратных 512 и там как найдешь искомую строку, то от начала до примерного размера файла данные читаешь и записываешь в файл

anonymous
()

Сразу после rm посмотри sudo lsof +L1. Если увидишь нужный файл с (deleted), пока процесс жив, скопируй /proc/PID/fd/N на другой раздел. В столбце FD, например, 7r — в путь подставляй просто 7. Если открытого дескриптора нет, этот способ не поможет.

hstq
()

Чтобы можно было восстанавливать файлы надо настроить duplicity или подобную систему

anonymous
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария