Dois-je m'inquiéter de la «queue: type de système de fichiers non reconnu 0xbeefdead»?

32

J'essaie de suivre un fichier texte normal avec tail -f -n 50 filename. Je récupère très bien les informations du fichier, sauf que je reçois toujours le message d'erreur suivant:

tail: type de système de fichiers non reconnu 0xbeefdead

Cela se produit sur tous les fichiers. Le 0xbeefdeadme inquiète - il ressemble à une étiquette de pirate.

$ tail --version
tail (GNU coreutils) 8.4
kwknowles
la source
3
Ne devrait-il pas être à la 0xdeadbeefplace? :P
devnull
1
Vote rapproché rétracté.
slm
1
Probablement évident, mais 0xDEADBEEF est souvent utilisé pour indiquer des octets non initialisés et ainsi de suite. BEEFDEAD est probablement une astuce intelligente à ce sujet. fr.wikipedia.org/wiki/Hexspeak (recherche de deadbeef)
user426724
@ goldilocks: C'est une belle histoire mais il n'y a pas de doute. Fixez également votre clé de verrouillage des majuscules.
Ben Voigt
3
@BenVoigt Caps verrouille le côté, il a fait valoir un argument valable. La question est parfaitement claire: il demande simplement si son boeuf est normal.
Navin

Réponses:

34

Si vous recevez cet avertissement lorsque vous utilisez le système de fichiers StorNext et que vous utilisez la version coreutils8.21 ou une version antérieure, vous n'avez pas à vous inquiéter; ce message d'avertissement est attendu.

GNU taildispose de connaissances techniques sur un certain nombre de types de systèmes de fichiers et avertit quand il rencontre un type inconnu. Prise en charge du système de fichiers StorNext a été ajouté à tailen coreutilsen Avril 2013, et a été libéré en coreutils8.22. Le commit est ici . Si vous ne pouvez pas obtenir cette version de coreutils, ou si vous souhaitez modifier et recompiler vous-même le code source, voici le diff de ce commit:

src/stat.c
@@ -399,6 +399,8 @@ enum
     return "selinux";
   case S_MAGIC_SMB: /* 0x517B remote */
     return "smb";
+  case S_MAGIC_SNFS: /* 0xBEEFDEAD remote */
+    return "snfs";
   case S_MAGIC_SOCKFS: /* 0x534F434B local */
     return "sockfs";
   case S_MAGIC_SQUASHFS: /* 0x73717368 local */
Mark Plotnick
la source
11
Pourquoi un programme en espace utilisateur comme celui-ci taildoit-il être compatible avec un système de fichiers spécifique? Je suppose que ce que je veux dire est la suivante: n'y a-t-il aucune abstraction de système de fichiers sur laquelle on peut compter?
15
@ illuminÉ, le type de système de fichiers est principalement déterminé par l'opération "tail-f": le moyen le plus efficace de déterminer si de nouvelles données ont été écrites dans un fichier varie d'un système de fichiers à un autre.
Marc
9
tailavec l' -foption utilise inotifysi c'est possible. Mais inotifyvous ne pouvez surveiller que les changements causés par une activité effectuée par le noyau du système local. Donc tail, utilisera inotifyuniquement si l'argument de fichier est sur ce qu'il qualifie de système de fichiers "local".
Mark Plotnick
7
Et la dernière information manquante est que le noyau n'indique pas clairement que quelque chose ne va pas lorsque vous essayez d'utiliser inotify sur un système de fichiers qui ne le prend pas en charge. Ce nombre magique kludgefest est fondamentalement le seul moyen sûr de l'utiliser.