¿Debo preocuparme por “tail: tipo de sistema de archivos no reconocido 0xbeefdead”?

32

Estoy tratando de seguir un archivo de texto normal con tail -f -n 50 filename. Recibo muy bien la información del archivo, excepto que siempre recibo este mensaje de error:

tail: tipo de sistema de archivos no reconocido 0xbeefdead

Sucede en cada archivo. El 0xbeefdeadme preocupa - se ve como una etiqueta de piratería informática.

$ tail --version
tail (GNU coreutils) 8.4
kwknowles
fuente
3
¿No debería ser 0xdeadbeefen su lugar? :P
devnull
1
Voto cerrado retraído.
slm
1
Probablemente obvio, pero 0xDEADBEEF se usa a menudo para indicar bytes no inicializados y cosas así. BEEFDEAD es probablemente un giro inteligente en esto. en.wikipedia.org/wiki/Hexspeak (buscar deadbeef)
usuario426724
@goldilocks: es una buena historia pero no hay duda. Además, arregle la tecla de bloqueo de mayúsculas.
Ben Voigt
3
@BenVoigt Caps se cerró a un lado, hizo un punto válido. La pregunta es perfectamente clara: solo pregunta si su carne es normal.
Navin

Respuestas:

34

Si recibe esta advertencia cuando usa el sistema de archivos StorNext y está ejecutando coreutils8.21 o anterior, no hay mucho de qué preocuparse; Se espera este mensaje de advertencia.

GNU tailtiene un conocimiento cableado sobre varios tipos de sistemas de archivos y advierte cuando encuentra un tipo desconocido. Soporte para el sistema de archivos StorNext fue introducido en tailen coreutilsen abril de 2013, y fue lanzado en coreutils8,22. El compromiso está aquí . Si no puede obtener esa versión coreutilso desea editar y recompilar la fuente usted mismo, aquí está la diferencia de esa confirmación:

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
fuente
11
¿Por qué un programa de espacio de usuario como taildebe ser compatible con un sistema de archivos específico? Supongo que lo que quiero decir es, ¿no hay una abstracción del sistema de archivos en la que pueda confiar?
15
@ illuminÉ, la razón principal para determinar el tipo de sistema de archivos es la operación "tail -f": la forma más eficiente de determinar si se han escrito nuevos datos en un archivo varía de un sistema de archivos a otro.
Mark
9
tailcon la -fopción usa inotifysi puede. Pero inotifysolo puede monitorear los cambios causados ​​por la actividad realizada por el núcleo del sistema local. Por taillo tanto , inotifysolo se usará si el argumento del archivo está en lo que clasifica como un sistema de archivos "local".
Mark Plotnick
77
Y la información final que falta es que el núcleo no da una indicación clara de que algo está mal cuando intentas usar inotify en un sistema de archivos que no lo admite, por lo que este número mágico kludgefest es básicamente la única forma segura de usarlo.