Solo por diversión:
¿hay alguna forma de monitorear / capturar / volcar lo que se está escribiendo /dev/null?
En Debian o FreeBSD, si es importante, cualquier otra solución específica del sistema operativo también es bienvenida.
Solo por diversión:
¿hay alguna forma de monitorear / capturar / volcar lo que se está escribiendo /dev/null?
En Debian o FreeBSD, si es importante, cualquier otra solución específica del sistema operativo también es bienvenida.
/dev/nullpodría hacer un análisis del contenido de muchos mensajes capturados . No quisiera investigar yo mismo, pero me encantaría leer los resultados. (Hay muy probablemente habría algunas cuestiones éticas en la "mirando a través de la basura de la gente" en esencia, pero el concepto es interesante, no obstante.)Respuestas:
Hacer
/dev/nulluna tubería con nombre es probablemente la forma más fácil. Tenga en cuenta que algunos programas (sshdpor ejemplo) actuarán de manera anormal o no se ejecutarán cuando descubran que no es un archivo especial (o pueden leerlo/dev/null, esperando que regreseEOF).Esto debería funcionar en todas las distribuciones de Linux y en todos los BSD principales.
fuente
tailfalla, muchos programas pueden fallar porque el búfer de la tubería está lleno./dev/nullno les va a gustar esto.No magices un principio rector en la filosofía de UNIX./dev/nulles mágico,mknod /dev/null c 1 3es la fórmula mágica para invocarlo. (Y necesitas superpoderes para eso ...)Una vez descubrí por las malas que / dev / null no tiene que ser un archivo de desarrollo especial. Hace mucho tiempo, se eliminó / dev / null en un sistema Ultrix en el trabajo, por lo que la próxima vez que un programa redirigió a / dev / null, terminó siendo un archivo normal lleno de la salida de ese programa. (Creo que no era "tal archivo o directorio", lo que significaba que cuando estábamos tratando de averiguar qué estaba pasando, lo hacíamos
cat /dev/nully nos decían lono such file or directoryque nos confundía muchísimo).Entonces, mi sugerencia sería reemplazarlo con una tubería con nombre y luego adjuntar un programa a la tubería que lo leería y lo monitorearía.
fuente
/dev/nulldevolver siempre 0 bytes en un read (cat /dev/null > foo). Tener/dev/nullun archivo regular con contenido rompería esta expectativa.Pienso en una idea en la que / dev / null puede ser un enlace simbólico a un descriptor de archivo pero con un mecanismo de agregar código para determinar que la operación es de lectura o escritura y luego, si se lee, debería leer desde / dev / actualnull creado por separado con mknod y si está escrito, tome nota del programa de invocación e intente iniciar sesión / contar para analizar los programas que usan / dev / null para escribir. Sin embargo, supongo que esto va a costar mucho en términos de rendimiento. Supongo que no es práctico ya que la mayoría de los programas de shell o código usan la redirección de todos modos. ¿Puede ser inotify podría usarse para monitorear el uso de / dev / null? o reescriba el código del núcleo que maneja los dispositivos 1: 3, compile y reinstale nuevamente, experimentable.
fuente
/dev/nulldesde un demonio), ysshdtodavía me quejé y no comencé.sshd(al menos, como está empaquetado para Debian Squeeze) se quejasshd: cannot create /dev/nullsi es cualquier cosa menos la implementación más común.