ℹ️ Иногда происходит неприятность — вы случайно удалили файл, который был нужен, но к счастью, это ещё не конец. Если файл всё ещё открыт каким-то процессом, его можно восстановить без использования сложных инструментов вроде файловых систем extundelete или восстановления из бэкапов. Всё, что вам нужно — это команда lsof.
🖥 1. Сначала найдите процесс, который использует удаленный файл:
lsof | grep deleted
ℹ️ Это покажет список файлов, которые были удалены, но по-прежнему открыты процессами. Например, в выводе вы увидите что-то вроде:
myapp 1234 user 4r REG 8,1 1048576 1234567 /var/log/myapp.log (deleted)
📂 2. Теперь вы можете восстановить файл, скопировав его содержимое обратно на диск.
Для этого используйте cp с /proc:
cp /proc/1234/fd/4 /var/log/myapp.log
❔ Здесь 1234 — это PID процесса, а 4 — это дескриптор файла (он находится в четвертой колонке вывода lsof).
✔️ 3. Готово! Теперь ваш файл снова на месте.
✳️ Этот трюк работает только до тех пор, пока процесс, который использует файл, не завершён. Как только процесс закроет файл, восстановить его через /proc уже не получится.
tags: #полезно #linux
🧭 @recura_tech



