LINUX.ORG.RU
ФорумAdmin

Directory index full и ls не работает на одной папке

 , , ,


0

2

Всем привет, в логах появилось сообщение EXT4-fs warning (device sdb1): ext4_dx_add_entry:2022: Directory index full! Вроде нашли папку, но посмотреть что в ней, хотя бы часть не могу… Вот у меня и родился вопрос а можно увидеть частично, что в этой папке. К примеру так тоже ничего не выдает… unbuffer ls | unbuffer head -n 2

Сиду, голову ломаю, может есть люди умнее меня и уже знают как это сделать ? )


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

Я даже не знал про такую тулзу, спасибо!

Примерно такой вывод strace ls -f

brk(NULL)                               = 0x5f11000
brk(0x5f32000)                          = 0x5f32000
getdents(3, /* 341 entries */, 32768)   = 32736
getdents(3, /* 341 entries */, 32768)   = 32736
getdents(3, /* 341 entries */, 32768)   = 32736
getdents(3, /* 341 entries */, 32768)   = 32736
brk(NULL)                               = 0x5f32000
brk(0x5f53000)                          = 0x5f53000
getdents(3, /* 341 entries */, 32768)   = 32736
getdents(3, /* 341 entries */, 32768)   = 32736
getdents(3, /* 341 entries */, 32768)   = 32728
getdents(3, /* 341 entries */, 32768)   = 32736
getdents(3, /* 341 entries */, 32768)   = 32736
brk(NULL)                               = 0x5f53000
brk(0x5f74000)                          = 0x5f74000
getdents(3, /* 341 entries */, 32768)   = 32736
getdents(3, /* 341 entries */, 32768)   = 32736
getdents(3, /* 341 entries */, 32768)   = 32736
getdents(3, /* 341 entries */, 32768)   = 32736

strace ls -1f

write(1, "ZmFrZS83ZWZiZDgyMDg3YWE1ODljOjE3"..., 73ZmFrZS83ZWZiZDgyMDg3YWE1ODljOjE3NTkyNDVkNWVhOjE3NTkyNDVkNWViOjYwYWFkNjJl
) = 73
write(1, "ZmFrZS9lNTI0MDIzOTY0NDExZGUzOjE3"..., 73ZmFrZS9lNTI0MDIzOTY0NDExZGUzOjE3NWFjMTNlNjIzOjE3NWFjMTNlNjI0OmM1Nzk1NWJh
) = 73
write(1, "ZmFrZS8zZjFlNWEzM2JmYTExYjVjOjE3"..., 73ZmFrZS8zZjFlNWEzM2JmYTExYjVjOjE3NWEzNjI2YzkyOjE3NWEzNjI2YzkzOjVhZjQzY2Fm
) = 73
write(1, "ZmFrZS9kZTUyNGQ4MjViYjFlNzEwOjE3"..., 73ZmFrZS9kZTUyNGQ4MjViYjFlNzEwOjE3NTlmNWM4MjRjOjE3NTlmNWM4MjRkOjhjODU0OWVk
) = 73

Ну и идет это все дело как будто бесконечно…

ReZooR
() автор топика
Ответ на: комментарий от ReZooR

Я так понимаю, надо тупо ждать ? )

А ls может мне сразу первый найденный файл выплюнуть в консоль или я размечтался ?

ReZooR
() автор топика
Ответ на: комментарий от ReZooR
Filesystem                 Inodes   IUsed     IFree IUse% Mounted on

/dev/sdb1                67108864 6388638  60720226   10% /data.store
ReZooR
() автор топика
Ответ на: комментарий от ReZooR

ls -1 -U

и должен выплёвывать. Ну, или ″ls -1 -f″, тем более, если под strace он у вас даёт ″write(1,)″, то есть вывод на stdout.

И тут на форуме эта тема обсуждалась, и, ЕМНИП, проблемы с rm будут. По второй ссылки, что я приводил, мой простой код на Си, который тупо удаляет все файлы в подобном каталоге. Читайте...

P.S. Вместо du можете посмотреть ″ls -l -d имя_каталога″. Там будет безумный размер. Его поделите на, допустим, 80, получите примерное число файлов.

mky ★★★★★
()

Мне несколько раз приходилось удалял каталоги 800-900к файлами.

Самым быстрым оказалось find . -type f -delete

посмотреть можно через find

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