![Simfs hardlinks paradeiro](https://rvso.com/image/97219/Simfs%20hardlinks%20paradeiro.png)
Eu tenho um hardlink estranho no servidor centos 6.5 vps. Foi feito pelo homem, presumo, mas não fui eu quem fez isso.
df
conta algumas informações.
[root@root]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/simfs 209715200 128660820 81054380 62% /
none 4194304 4 4194300 1% /dev
none 4194304 0 4194304 0% /dev/shm
/dev/simfs 209715200 128660820 81054380 62% /var/www/username/data/www/test.site.biz/photo
ls -li
não diz nada de útil
[root@vz65646 test.site.biz]# ls -li
total 7952
79435160 drwxr-xr-x 2 someuser someuser 8130560 Oct 25 20:52 photo
A pasta com link físico é photo
. Por engano, o rm -rf test.site.biz
que levou a coisas ruins aconteceram. Ou seja, o diretório de fotos em outro lugar ficou limpo.
Presumo que a restauração de dados não seja possível. No entanto, gostaria de descobrir o que aconteceu aqui para não repetir o mesmo erro duas vezes.
Qualquer sugestão é muito apreciada.
Responder1
Você tem dois sistemas de arquivos montados com características semelhantes: mesmo nome de dispositivo, mesmo uso de disco. É muito provável que sejam, de fato, o mesmo dispositivo. Isso pode acontecer se você montar o mesmo sistema de arquivos de rede em locais diferentes, por exemplo. Dado que este é um sistema de arquivos local, comofontejediidentificado em um comentário, é muito provável que este seja ummontar montagem, criado por um comando como mount --bind /origin /var/www/username/data/www/test.site.biz/photo
.
Se o seu sistema for recente o suficiente, você podeuse findmnt
para confirmar que é uma montagem vinculada. Mas de qualquer forma, a maioria dos tipos de sistemas de arquivos não podem ser montados ao mesmo tempo em locais diferentes, portanto, ter o mesmo dispositivo é prova suficiente de que se trata de uma montagem vinculada.
Uma montagem vinculada fornece uma visualização de uma árvore de diretórios em um local diferente. Em termos de acesso aos arquivos na montagem bind, é semelhante a ter um link simbólico na árvore, ou seja, /var/www/username/data/www/test.site.biz/photo/somefile
é o mesmo arquivo que /origin/somefile
, como se /var/www/username/data/www/test.site.biz/photo
fosse um link simbólico para /origin
. Mas /var/www/username/data/www/test.site.biz/photo
não é um link simbólico, é um diretório.
Como /var/www/username/data/www/test.site.biz/photo
é um diretório, uma travessia recursiva desce até ele. Portanto, rm -rf
exclua os arquivos em /original
, porque /original
e /var/www/username/data/www/test.site.biz/photo
são o mesmo diretório que são mostrados em locais diferentes.
Responder2
Algumas coisas que descobri sobre o assunto:
mount --bind
é uma má ideia até que você saiba exatamente o que está fazendo. Melhor usar links simbólicos.- É bastante difícil detectar montagens ao trabalhar com pastas. É uma espécie de escopo do servidor (não o que você pensa ao mover pastas).
umount your_directory
remove a ligação, mas não prejudica a pasta original.- Você pode listar todas as montagens via
findmnt
comando. As montagens encadernadas terão colchetes.