Hora de criação do arquivo no Windows versus Linux

5

Temos a seguinte configuração:

  1. mountserver - debian linux
  2. fileserver1 - servidor de armazenamento do Windows 2008 R2
  3. fileserver2 - Celerra NS20 exportando o compartilhamento CIFS
  4. workstation - windows 7 com a unidade mapeada para compartilhar no fileserver2

O que estamos fazendo:

  • compartilhamento montado do fileserver1 no mountserver, por exemplo / shared / fileserver1
  • compartilhamento montado do fileserver2 no mountserver, por exemplo / shared / fileserver2
  • executou rsync no mountserver para sincronizar dados de fileserver1 para fileserver2.Used atime como parâmetro para sincronizar dados não mais antigos que X
  • depois de um tempo tentou excluir dados mais antigos que Y em / shared / fileserver2.

Pelo que vejo, o comando linux stat no mountserver retorna após a consulta do arquivo em / shared / fileserver2:

Aomesmotempo,quandoabroapropriedadeparaomesmoarquivousandoaunidademapeadaconectadaaofileserver2,vejooseguinteparaomesmoarquivo:

Como você pode ver, a data de criação de 12 de agosto mostrada no Windows Explorer não é vista em nenhum lugar usando o comando stat

Estou sentindo falta de algo aqui?

    
por Sergei 24.04.2012 / 13:23

3 respostas

6

O Linux não armazena o tempo de criação do arquivo. Então, você não poderá ver essas informações em uma máquina Linux.

Aqui está um link que mostra a estrutura de dados do inode. Você pode encontrar:

time_t                       i_atime;
time_t                       i_mtime;
time_t                       i_ctime;

Nada disso é tempo de criação.

    
por 24.04.2012 / 13:32
3

O tempo de criação do arquivo não é armazenado em nenhuma parte das partições do Linux, portanto, stat é exibido somente em:

atime (access time)
mtime (last modification time)
ctime (last status change)
    
por 24.04.2012 / 13:40
2

Alguns sistemas de arquivos mais recentes do Linux estão suportando informações (dentro de seus inodes) sobre o tempo de criação de arquivos, como JFS, ext4 ou btrfs. Mas o sistema de arquivos tradicional Unix e Linux não suportava isso e, portanto, a cadeia de ferramentas inteira não está ciente de tal recurso ainda .

Assim, mesmo que o smbfs / cifs possa ter acesso a esta informação, existe ainda não há lugar para reportar esta informação na estrutura estatística :

struct stat {
  dev_t     st_dev;     /* ID of device containing file */
  ino_t     st_ino;     /* inode number */
  mode_t    st_mode;    /* protection */
  nlink_t   st_nlink;   /* number of hard links */
  uid_t     st_uid;     /* user ID of owner */
  gid_t     st_gid;     /* group ID of owner */
  dev_t     st_rdev;    /* device ID (if special file) */
  off_t     st_size;    /* total size, in bytes */
  blksize_t st_blksize; /* blocksize for file system I/O */
  blkcnt_t  st_blocks;  /* number of 512B blocks allocated */
  time_t    st_atime;   /* time of last access */
  time_t    st_mtime;   /* time of last modification */
  time_t    st_ctime;   /* time of last status change */
};
    
por 06.06.2012 / 18:18