ls ничего не возвращает только в определенных каталогах

Если Вы только храните информацию о видео и изображениях в базе данных, Вы не должны достигать такого предела быстро.

Для тестирования этого, почему не, Вы устанавливаете Экспресс SQL Server 2005 года в своей системе и видите, насколько большой Ваша база данных с объемом демонстрационных данных близко к тому, что Вы ожидаете. Кроме того, большинство хостинговых компаний дает Вам опцию переместиться в большую базу данных позже поэтому, если Вы думаете, что это будет проблема, удостоверяются, что пошли с компанией, которая позволяет это.

2
задан 15 March 2010 в 19:15
5 ответов

Кроме предложений выше, я также видел эту проблему, когда существует очень большое количество файлов в каталоге, который Вы перечисляете, который amy заставить файловую систему исчерпывать inodes. Если это - возможность, попытайтесь просто оставить команду ls, чтобы видеть, завершается ли она через некоторое время.

4
ответ дан 3 December 2019 в 09:11
  • 1
    +1 я думаю, что это могло иметь место также –  Richard Holloway 15 March 2010 в 18:29
  • 2
    Проверьте, что Вы имеете dir_index, включил в файловой системе: sudo dumpe2fs /dev/sda1|grep 'Filesystem features', Если это не включено, затем: 1. резервное копирование 2. umount файловая система 3. tune2fs-O dir_index/dev/.... 4. e2fsck-D/dev/.... –  Mircea Vutcovici 15 March 2010 в 20:05

Ваши диски, вероятно, в беде. Вы могли попробовать это:

Terminal 1$ ls /data/somedir/somesubdir/
 (hang)
Terminal 2$ ps auxww | grep somesubdir

Если состояние Вашего ls D, это означает, что ожидает диска, чтобы сделать что-то. Заглянуть dmesg для сообщений о состоянии, и изучают УМНЫЙ, если Вы уже не используете его, чтобы видеть, насколько здоровый те диски.

Почему делает find работа хорошо? Поскольку это не делает a stat() на каждом файле. Это указывает, что каталог в порядке, но один или несколько файлов находится на поврежденном разделе диска (или что-то подобное).

1
ответ дан 3 December 2019 в 09:11

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

Если каталог не пуст, возможно, что у Вас есть поврежденная файловая система - выполняет fsck для проверки. Если файловая система хорошо, и каталог не пуст, затем должен подвергнуть сомнению ls - возможно, Ваша копия ls была заменена в очень примитивной форме руткита?

1
ответ дан 3 December 2019 в 09:11
  • 1
    +1 I' m размышление поврежденной файловой системы или чего-то к тому эффекту. Мог также быть вне inodes (как кто-то еще упомянутый). –  Chris S 15 March 2010 в 19:31
  • 2
    Как был бы, будучи из причины inodes этой проблемой? Много inodes в том каталоге заняло бы больше времени, чтобы сделать ls, но это isn' t то же как отсутствующий почти. –  Bill Weiss 15 March 2010 в 21:45

Попытайтесь выяснить, где это зависает путем выполнения

strace ls $DIR
1
ответ дан 3 December 2019 в 09:11

Возможно, существует файл с именем, которое содержит последовательность байтов, которые блокируют Ваш терминал. Можно иногда разблокировать заблокированную терминальную отправку Ctrl-Q сочетание клавиш (Ctrl-S блокирует его).

Попытайтесь сделать /bin/ls -N | less -S и посмотрите, если существует какое-либо имя файла с подозрительными или управляющими символами. Меньше показало бы это символы шестнадцатеричными кодами в угловых скобках, например <BF>.

Существование файла с символами с кодом ниже, чем 32 (от <01> кому: <1F>) может быть знак системного компромисса. Или ошибка управления памятью в некоторой программе, которые создают файлы там.

0
ответ дан 3 December 2019 в 09:11

Теги

Похожие вопросы