
Estou trabalhando com um software chamado logstash que processa arquivos de log e armazena o progresso em um arquivo como este:
82484791-1419-65536 0 0 26507948
82484791-1420-65536 0 0 26071030
82484791-1421-65536 0 0 3065829
82484791-1422-65536 0 0 3973980
82484791-1425-65536 0 0 4301931
Quero ver os nomes dos arquivos que foram processados.
De acordo com a documentação, isso deve ser interpretado como:
Os arquivos Sincedb são arquivos de texto com quatro colunas:
O número do inode (ou equivalente). O número principal do dispositivo do sistema de arquivos (ou equivalente). O número secundário do dispositivo do sistema de arquivos (ou equivalente). O deslocamento de bytes atual no arquivo.
No Linux posso converter o inode em nome de arquivo usando:
find /path/to/mountpoint -inum <inode number>
ou
debugfs -R 'ncheck <inode number>' /dev/sda2 2>/dev/null
Qual é o equivalente do Windows para fazer isso?Como faço para converter os descritores de arquivos/arquivos do Windows em nomes de arquivos e diretórios?
Responder1
Os descritores e identificadores de arquivos são efêmeros: eles existem apenas enquanto um programa está em execução e podem ser reutilizados. Encontrá-los em um arquivo de log é bastante inútil.
Os inodes do Linux sãonãodescritores de arquivo. Eles fazem parte da estrutura do sistema de arquivos em disco em sistemas de arquivos comuns, como Ext2 e Ext3. Por serem tão importantes para o Linux, o Linux simulará números de inodes ao acessar um sistema de arquivos Microsoft FAT.
Isso nos leva ao próximo problema: o Windows não usa inodes, porque os sistemas de arquivos típicos da Microsoft não usam inodes. Não está claro qual é o valor "ou equivalente". Se eu tivesse que adivinhar, eu adivinhariaAtualizar número de sequência (USN)mas não acredite apenas na minha palavra.