|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() |
Bonjour,
J'aimerais essayer de comprendre un phénomène assez bizarre concernant les numéros d'inodes sur un système de fichiers monté en cifs. Ma partition principale est en ext3. Lorsque je fais un ls -i sur un fichier JPG issu d'un montage cifs, à plusieurs reprises consécutives, j'ai toujours le même numéro d'inode. J'utilise un script php pour mettre en cache des miniatures de ces images. J'utilise dans mon nom de fichier "cache" le numéro d'inode du fichier source pour détecter s'il a déjà été généré ou non. A chaque fois, mon script me renvoie un numéro d'inode différent pour le même fichier. Quand je refais un ls -i sur mon fichier, le numéro d'inode a changé. Un ls -l me permet de voir que la date du fichier n'a pas changé, donc a priori il n'a pas été touché (et n'a pas de raisons d'avoir été touché). Un touch sur le fichier suivi d'un ls -i me confirme que l'inode n'a pas changé. Quelqu'un peut-il m'expliquer ce qu'il se passe ? J'aurais pu poster sur un forum php, mais le bout de script ne fait qu'utiliser la fonction fileinode($file) ce qui à mon sens n'incrimine pas mon script. Par contre, peut-être est-ce dû au système de fichiers ou à quelque chose d'autre qui m'échappe pour que mes numéros d'indes changent comme ça. En loguant mes créations de miniatures, je peux confirmer que les chemins d'accès aux fichiers sont strictement identiques avec des inodes différents. J'irai voir du côté php si pour vous rien ne peut permettre un tel changement de numéro d'inode. En vous remerciant. |
|
10
|
|
|
#2 |
|
Membre expérimenté
![]() |
En fait, ce qui me pose problème, c'est la signification du concept d'inode en CIFS. Il doit y avoir des systèmes de cache qui doivent pouvoir perturber l'affaire, à mon sens.
|
|
|
10
|
|
|
#3 |
|
Membre habitué
![]() |
Tu parles des délais d'écriture ?
Je ne pense pas que le problème vienne de là, les fichiers n'ont pas forcément été écrits dans la journée. Mais il doit bien y avoir quelque chose de lié à cifs, enfin j'espère. Du coup je me suis basé sur la taille en octets du fichier pour gérer mon cache. La fonction fileinode du site de php ne relève aucun avertissement en ce sens par contre ; soit c'est un oubli, soit ça n'a rien à voir... |
|
01
|
|
|
#4 |
|
Membre expérimenté
![]() |
Regarde là : http://linux.die.net/man/8/mount.cifs
Et notamment, la section serverino Use inode numbers (unique persistent file identifiers) returned by the server instead of automatically generating temporary inode numbers on the client. Although server inode numbers make it easier to spot hardlinked files (as they will have the same inode numbers) and inode numbers may be persistent (which is userful for some sofware), the server does not guarantee that the inode numbers are unique if multiple server side mounts are exported under a single share (since inode numbers on the servers might not be unique if multiple filesystems are mounted under the same shared higher level directory). Note that not all servers support returning server inode numbers, although those that support the CIFS Unix Extensions, and Windows 2000 and later servers typically do support this (although not necessarily on every local server filesystem). Parameter has no effect if the server lacks support for returning inode numbers or equivalent. A lire ça, je suppose, qu'il te suffirait de mettre cette option pour ne plus avoir ton problème, mais avec toutes les restrictions évoquées. |
|
|
10
|
|
|
#5 |
|
Membre habitué
![]() |
Merci thierry.chich pour cettre trouvaille.
Ca correspond tout à fait à mon problème (plusieurs montages cifs). Mais du coup je me suis contenté du nom physique sans le chemin et de la taille du fichier pour nommer les fichiers "cache" générés. |
|
00
|
Copyright © 2000-2012 - www.developpez.com