O que significa a versão do arquivo: lsattr -v

3

lsattr -v me fornece o "número da versão" de determinado (s) arquivo (s).

O que isso significa?

No Redhat 7.3, eu poderia jurar que todos os números da versão eram 1, exceto aqueles que eu mudei com chattr -v .

No Fedora 11, eles pareciam ser números aleatórios .

Definindo números de versão ou até mesmo tendo várias versões de um arquivo poderia ser muito útil, então eu quero entender como o "versioning" funciona no ext3.

    
por barrycarter 30.10.2010 / 18:05

2 respostas

4

lsattr -v chama o EXT2_IOC_GETVERSION ioctl para o arquivo. Isso, por sua vez, recupera o campo i_generation do inode. Este é um recurso destinado principalmente ao uso com o NFS: cada vez que um inode é alocado, é necessário garantir que ele receba uma nova geração. Caso contrário, os clientes NFS com identificadores de arquivos obsoletos podem conseguir acessar dados que não foram feitos para eles. ext2 / ext3 / ext4 aloca o número de geração de um contador global de volume s_next_generation , que é incrementado em cada alocação.

    
por 30.10.2010 / 21:11
2

Esta não é realmente uma resposta, mas apenas uma descoberta interessante.

Eu brinquei com lsattr -v e parece que cada novo arquivo que você cria recebe um número único atribuído a ele. Não tenho certeza se isso está correto, minha validade está documentada abaixo.

$ mkdir temp                  # make a new folder
$ cd temp       
$ touch a b c d e f g         # create a lot files in that folder.
$ lsattr -v *                 # checkout those files using lsattr -v
1386486996 -------------e- a
1386486997 -------------e- b
1386486998 -------------e- c
1386486999 -------------e- d
1386487000 -------------e- e
1386487001 -------------e- f
1386487002 -------------e- g

Esse comportamento pode ser limitado à distribuição ou ao formato do disco.

    
por 30.10.2010 / 18:24