LINUX.ORG.RU

Глюк find или ext3. Как такое может быть?


0

0

Решил почистить tmp от старых файлов. делаю find /tmp -atime +3, получаю большой список. Ага, делаю find /tmp -atime +3 -exec rm -rf {} \; Получаю - /tmp - нет такого файла или каталого. Гляжу, действительно нет. (Не догодался посмотреть сразу $?) Как корова языком слезала. В dmesg ничего нет, в lost-found тоже... Я фигею.

Re: Глюк find или ext3. Как такое может быть?

rm первым делом удалил /tmp/. :)

nu11 ★★★★★ ()

Re: Глюк find или ext3. Как такое может быть?

Фокус в том, что find нашёл так же и сам каталог /tmp (причём самым первым). А rm -rf его успешно снесла вместе с содержимым.

Теги: ПМХ, дверь

Deleted ()
Ответ на: Re: Глюк find или ext3. Как такое может быть? от saturn721

Re: Глюк find или ext3. Как такое может быть?

> Хм, и затем уже было сообщение про отсутствие каталога? Как то это странно.

Ничего странного. Скорее всего либо внутри самого find'а, либо внутри функций которые он использует для поиска, проиводится буферизация. Так что он сначала нашёл пачку файлов, например

/tmp
/tmp/file1
/tmp/file2
...

А потом уже по очереди начал делать на них rm -rf

rm -rf /tmp # снесло всё
rm -rf /tmp/file1 # ОПА! а /tmp то уже нет...

Deleted ()
Ответ на: Re: Глюк find или ext3. Как такое может быть? от saturn721

Re: Глюк find или ext3. Как такое может быть?

> А как быть с atime +3, это вроде доступ был более 3 суток назад.

Раздел примонтирован с noatime? Или может для директорий atime как-то хитро изменяется? Погугли.

Deleted ()

Re: Глюк find или ext3. Как такое может быть?

джедаи, следящие за своими balls, делают обычно

find > somelempfile
vi sometempfile
беглый осмотр
а только потом уже удаление всего, что записано в sometempfile

MyLan ()

Re: Глюк find или ext3. Как такое может быть?

find /tmp -atime +3 -type f -delete
find /tmp -type d | xargs rmdir

Valmont ★★★ ()

Re: Глюк find или ext3. Как такое может быть?

/tmp же сам чистится, зачем его руками чистить? о_О

YAR ★★★★★ ()

Re: Глюк find или ext3. Как такое может быть?

> Глюк find или ext3. Как такое может быть?

Это - без сомнений глюк ext3/ext4.

Отмонтируй, fsck'ни, примонтируй - файло появится. Причём такое бывает только с rm -rf. Если удалять по одному, т.е. find /tmp -atime +3 -delete, то эффект не проявляется.

sig_wall ()
Ответ на: Re: Глюк find или ext3. Как такое может быть? от sig_wall

Re: Глюк find или ext3. Как такое может быть?

Ой, не дочитал топикстартера, в общем я описал другой случай, когда rm -rf не доходит до конца, и не может удалить директорию, хотя она пуста.

sig_wall ()
Ответ на: Re: Глюк find или ext3. Как такое может быть? от z0D5e8n7x_2

Re: Глюк find или ext3. Как такое может быть?

> у меня весит в tmpfs, в каком-то дистре так нельзя сделать?

а инсталляторы распаковывающие по 4 гб ты как mkdir /newtmp && chmod 0777 /newtmp && TMPDIR=/newtmp/ ./installer.run запускаешь?

MyLan ()

Re: Глюк find или ext3. Как такое может быть?

- find /tmp -atime +3 -exec rm -rf {} \;
+ find /tmp -depth -atime +3 -exec rm -rf {} \;

По дефолту find сначала обрабатывает каталог, а потом содержимое. -depth заставляет делать наоборот: сначала оперировать с содержимым, а потом с самим каталогом.

man find (/-depth)

Slavaz ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.