Pontos de interrogação exibidos em sl do diretório. Erros de IO também

44

Alguém viu isso antes? Eu tenho um ataque 5 montado no meu servidor e por qualquer motivo ele começou a mostrar isso:

jason @ box2: / mnt / raid1 / cra $ ls -alh
ls: não é possível acessar e6eacc985fea729b2d5bc74078632738: Erro de entrada / saída
ls: não é possível acessar 257ad35ee0b12a714530c30dccf9210f: erro de entrada / saída
0 total
drwxr-xr-x 5 raiz root 123 19-08-2009 16:33.
drwxr-xr-x 3 raiz root 16 14-08-2009 17:15 ..
?????????? ? ? ? ? ? 257ad35ee0b12a714530c30dccf9210f
drwxr-xr-x 3 root root 57 2009-08-19 16:58 9c89a78e93ae6738e01136db9153361b
?????????? ? ? ? ? ? e6eacc985fea729b2d5bc74078632738

As cadeias de caracteres md5 são nomes de diretório reais e não fazem parte do erro. Os pontos de interrogação são ímpares, e qualquer diretório com um ponto de interrogação gera um erro io quando você tenta usar / excluir / etc.

Não consegui desmontar a unidade devido a "ocupado". A reinicialização do servidor o "corrigiu", mas estava lançando alguns erros de invasão no desligamento. Eu configurei duas matrizes RAID 5 e ambas começaram a fazer isso em arquivos aleatórios. Ambos estão usando a seguinte configuração:

mkfs.xfs -l size = 128m -d conta = 32
mount -t xfs -o noatime, logbufs = 8

Nada muito chique, mas parte de uma configuração otimizada para esta caixa. Não estamos particionando as unidades e isso foi sugerido como um possível problema. Este poderia ser o culpado?


fonte
Vi esses pontos de interrogação quando o autofs teve problemas para montar um diretório. Desligar o autofs me permitiu excluir o diretório e tentar montar manualmente, o que apontava para um erro de permissão no servidor remoto.
Pace

Respostas:

39

Eu tive um problema semelhante porque meu diretório tinha lido (r) mas não executava (x) direitos. Minha listagem de diretório mostrou:

myname@srv:/home$ ls -l service/mail/
ls: cannot access service/mail/001_SERVICE INBOX: Permission denied
total 0
-????????? ? ? ? ?                ? 001_SERVICE INBOX
d????????? ? ? ? ?                ? 01_CURRENT SERVICE

O diretório de email tinha o bit r definido, mas não o x que você precisa para listar ou pesquisar e acessar. Fazendo sudo chmod -R g+x mailresolveu este problema.

user65174
fonte
4
'sudo chmod -R g + x mail' e depois chmod +x mailresolveu o meu problema, obrigado!
glebm
6
e se você lsretornar no such file or directorycom vários ?????na área de privilégios / direitos?
Kevin Meredith
11

Os pontos de interrogação na lssaída indicam apenas que não foi possível stat()a entrada do diretório. Você também pode vê-los se tiver lsum diretório para o qual você tenha permissão r (ead), mas não x (pesquisa). No entanto, nesse caso, não seria relatório de erro I / O .

No seu caso, parece que há um erro no disco ou possivelmente uma corrupção no sistema de arquivos. /var/log/messagesou dmesgpoderá revelar mais detalhes.

mark4o
fonte
10

As respostas que mencionam a leitura, mas não executam ou stat () estão corretas. Mas há uma causa comum disso (que não seja a corrupção) que me incomodou algumas vezes e combinaria sua pergunta com os erros de IO. Se você montar incorretamente um sistema de arquivos, o ponto de montagem desse sistema de arquivos poderá aparecer com pontos de interrogação. Se você os vê onde tentou montar um novo sistema de arquivos, tente o seguinte antes de se preocupar com corrupção e fsck.

$ sudo umount /mnt/raid1/cra/257ad35ee0b12a714530c30dccf9210f
$ ls -alh /mnt/raid1/cra

Você deve ver a pasta 257ad35ee0b12a714530c30dccf9210f com permissões e atributos, em vez de pontos de interrogação. Nesse caso, procure outras opções para o seu comando mount ou o arquivo / etc / fstab. Caso contrário, talvez seja hora de ler as outras respostas, fazer backup do que puder e executar um fsck.

mightypile
fonte
este era o meu problema
endolith
5

Faça um backup o mais humanamente possível, apenas para que, se você estragar tudo ao tentar reparar qualquer dano potencial, possa voltar ao estado original menos quebrado. Após o backup, você pode executar o fsck para verificar se há algum problema.

Steven Schlansker
fonte
no meu caso, esse já é o backup.
Paolo
1

Tivemos um servidor com um sistema de arquivos corrompido (reiserfs) e ele gerou entradas de diretório com pontos de interrogação para todos os atributos, exceto o nome do arquivo. No nosso caso, os nomes de arquivos não foram afetados.

Além disso, o espaço livre estava sendo relatado incorretamente. O uso du -sh /*era de apenas 30G, mas a unidade estava sendo relatada como mais de 200G em uso.

A reinicialização do servidor shutdown -rF nowpara forçar uma verificação do sistema de arquivos não funcionou. Eu tive que reiniciar no modo de usuário único e executar:

fsck.reiserfs --rebuild-tree /dev/sda3

Isso quase funcionou. Passou por alguns passes e depois trancou. Teve que reinstalar o sistema operacional.

Mantenha seus backups!


fonte
1

Eu também vi isso ao executar autofs, mas o autofs não pode montar o diretório. Então, para descobrir por que não conseguia montar o diretório, desativei o autofs e tentei montá-lo manualmente (isso também me permitiu excluir o diretório). Tentei montar o diretório manualmente e descobri que havia um erro de permissão. Após corrigir isso, o diretório voltou ao normal novamente.

Ritmo
fonte
1

Cuidado com outros processos em execução no servidor, por exemplo, rsync

[root@server upload]# ls -la
ls: cannot access .3bfb3dc5-cb55-435f-8e23-2afcab2c6873_image4993891600240007749.jpg.bV6VTV: No such file or directory
total 194496
drwxr-x--- 2 gx apache    1382 Jan 11 10:36 .
drwxr-x--- 3 gx apache       3 Jan 11 10:29 ..
-rw-r--r-- 1 gx apache   94850 Dec 10  2015 37d355b9-210d-45df-8061-968ea5cb9f31_mob.jpg
...
-rw-r--r-- 1 gx apache   10864 Jul 24  2015 3bfb23bf-8ff5-4603-aa57-9b23ca498e2c_internet.png
-rw-r--r-- 1 gx apache   10864 Jul 24  2015 .3bfb23bf-8ff5-4603-aa57-9b23ca498e2c_internet.png.nHmIPk
-????????? ? ?  ?            ?            ? .3bfb3dc5-cb65-435f-8e23-2agcab2c6873_image4993891600240007749.jpg.bV6VTV

Ele gera arquivos temporários que são criados e descartados rapidamente, o que causará erros se você tentar chamar outros comandos simples de gerenciamento de arquivos, como rm , mv etc.

Marton Tatai
fonte
0

Só para dar uma perspectiva diferente - eu tinha isso quando estava programaticamente gerando diretórios a partir de uma lista de diretórios em um arquivo (em ruby).

Obviamente, a linha do arquivo surgiu como uma string com um \ n no final - que parecia boa e parecia funcionar. No entanto, quando comecei a criar diretórios, em vez de ser mastigado, acabou criando dois de cada diretório: /whatiwantede /whatiwanted?.

Luke Pearce
fonte
0

Às vezes, vejo isso como um erro transitório quando um servidor NFS está sobrecarregado.

O OP perguntou sobre o RAID, mas várias respostas mencionam o NFS e, de fato, foi essa a pesquisa que me trouxe aqui.

arp
fonte