LINUX.ORG.RU

В каких файловых системах есть буфер удаляемых файлов?

 , , ,


1

4

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

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

В каких фс такое есть? Есть в ext4 или в каких-нибудь других надёжных мэйнлайновых системах?

★★★★★

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

где-то ещё есть?

я бы, может быть, давно попробовал zfs, если б была лучше поддержка линуксом. Линус вот не хочет внедрять в мейнлайн. как эно вообще на линуксе? насколько надёжно? работает на корне? насколько быстро выходят патчи к свежему ядру?

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

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

teod0r ★★★★★ ()
Последнее исправление: teod0r (всего исправлений: 1)
Ответ на: комментарий от teod0r

разве снапшот это не некая копия, которая создаётся по команде?

да по команде, костыли с помощью lvm snaphots + cron или полноценная настройка бекапов файлов с дедупликацией, например https://borgbackup.readthedocs.io/en/stable/

Samamy ★★★ ()
Последнее исправление: Samamy (всего исправлений: 2)
Ответ на: комментарий от gremlin_the_red

Хардлинки — вариант, но они не вытащат, например, прошлую версию файла.

x3al ★★★★★ ()

Специально для тебя придумали корзину.

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

Разве корзина работает на уровне ФС?

По-мне очень крутая фича была бы. Например удаляешь файл, он помечается, как удалённый, но место, которое он занимает, пока ещё не освобождается. При этом все команды рапортуют, что размера на диске этот файл уже не занимает. Если свободные блоки на ФС закончились, самый старый файл уже удаляется окончательно и его блоки становятся свободными.

С HDD такая фича практически невозможна из-за фрагментации, но с SSD вполне можно было бы сделать.

Но я такого ни в одной ОС не видел. Снапшоты это совсем не то.

Legioner ★★★★★ ()

Хм, а я с момента появления в ОС такой сущности как «корзина» отключаю её, совсем, навсегда, полностью. Потому что если я хочу что то удалить - очевидно что я хочу удаления этого из объективной реальности насовсем (дада, я знаю что удалённое можно восстановить если иноды не успели перезаписаться, меня это не парит), а не перемещения в скрытую папочку/директорию/каталог-страховку от идиотизма. И ежели я косякнул и удалил что то не то - это урок быть внимательным и сначала думать, а потом кнопки жать.

А если по делу есть libtrash, через которую можно реализовать общесистемную оболочконезависимую корзину на любой ФС.

Jameson ★★★★ ()
Последнее исправление: Jameson (всего исправлений: 2)
Ответ на: комментарий от Jameson

libtrash

единственный комментарий по делу.
как сделать прелоад для всего окружения (и DE и все консольные утилиты)? просто export PRELOAD=...? никогда просто не приходилось делать прелоад

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

Да, но пишут что для браузеров это не работает.

Important note regarding web browsers based on Mozilla Firefox and Google Chrome: On several systems Mozilla Firefox, Google Chrome and browsers based on their code fail to start when libtrash is enabled. The easiest work-around is to disable libtrash for these browsers. Do so by starting Chrome with the command line «LD_PRELOAD= google-chrome» and Firefox with «LD_PRELOAD= firefox» (simply adjust the command accordingly for the other browsers). You can bind this command (if necessary by placing it in a one-line bash script file by itself) to whatever GUI icon or hotkey combination you use to start that browser. You may also modify your desktop file to include LD_PRELOAD= on the Exec= line.

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

бы, может быть, давно попробовал zfs, если б была лучше поддержка линуксом.

Какой у тебя процессор и какова средняя пиковая нагрузка компьютера?

torvn77 ★★★★★ ()

На десктопах бывает корзина. У самбы тоже есть специальный механизм.

targitaj ★★★★★ ()
Ответ на: комментарий от no-such-file

А напечатать mv вместо rm религия не позволяет?

А какое это отношение имеет к тому, что я описал? Это не решает ни одной проблемы. Размер диска будет показывать с учётом «удалённых» файлов. Автоматически «удалённые» файлы очищаться не будут. Если файл удаляешь не ты из консоли, а программа, то они будут удалены безвозвратно.

Legioner ★★★★★ ()
Последнее исправление: Legioner (всего исправлений: 2)
Ответ на: комментарий от teod0r

В бубунте она есть, в Gentoo можно поставить. Работает без проблем, хоть и подключается к ядру через фиг знает какое место. Зато постоянно обкатывается на FreeBSD уже года два наверное. Ну еще OpenIndiana есть с той же линуксовой ZFS, но ей не нужен кусок соляриса как фре для работы. Сохраняет состояния постоянно и позволяет откатиться на неделю на поломанной системе, чтобы понять кто откуда ломал. Апач как то раз поломали и только благодаря ZFS поняли что и как произошло.

anonymous ()

абсолютно не пробовал, но всемогущий гугл сказал что есть модуль ядра для корзины https://github.com/milabs/kmod_fstrash .
Пробуй, да отзывы пиши.

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

Слишком сложно. Проще сменить ФС на маргинальную хрень или напихать всякого говна в $LD_PRELOAD 👍

anonymous ()

Если не для rootfs, то можно попробовать aufs ( или overlayfs) + скрипт, который смотрит удаленные файлы и удаляет их из оригинального слоя через некоторое время

vel ★★★★★ ()

ещё гуглится bcachefs. COW - пологаю, может это.
не знаю правда как вообще эта файловая система

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

Корзина — путь гоя. rm -rf — путь сенсея, постигшего дзен и осознавшего бренность мирового бытия.

anti_win ★★ ()

Log-structured filesystems глянь.

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

Отличная файловая система, к твоей крайне странной хотелке никакого отношения не имеющая.

t184256 ★★★★★ ()
1 октября 2020 г.

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

Выход один – быть более внимательным и пользоваться rm только 10 раз подумав. А лучше просто завести папочку ~/.trash и сначала мувить туда, а по крону удалять все что старее недели или когда размер папочки достигнет n.

anonymous ()

несколько раз сталкиваться со случайным удалением нужных файлов

alias rm='rm -i'


/thread

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

я бы, может быть, давно попробовал zfs
Линус вот не хочет внедрять в мейнлайн.

Не Линус не хочет, а лицензия с GPL не совместима.

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

В каких фс такое есть?

Нигде нет такого. Отдельные приложения могут удалять в «корзину», но это уровень именно приложений. Но с некоторых пор в ядре есть inotify. Может быть можно как-то приспособить.

AS ★★★★★ ()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от darkenshvein

Я же расписал, зачем. Без уровня ФС такого не сделать.

Legioner ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.