Apenas por diversão:
existe uma maneira de monitorar / capturar / despejar o que está sendo gravado /dev/null
?
No Debian, ou no FreeBSD, se necessário, quaisquer outras soluções específicas de SO também são bem-vindas.
monitoring
devices
open-files
Todos
fonte
fonte
/dev/null
poderia ser uma análise do conteúdo de muitos s capturados . Eu não gostaria de fazer a pesquisa, mas adoraria ler os resultados. (Não seria muito provavelmente alguns problemas éticos em "olhando o lixo das pessoas" essencialmente, mas o conceito é interessante, no entanto.)Respostas:
Fazer
/dev/null
um pipe nomeado é provavelmente a maneira mais fácil. Esteja avisado de que alguns programas (sshd
por exemplo) agirão de maneira anormal ou não serão executados quando descobrirem que não é um arquivo especial (ou podem ler/dev/null
, esperando que ele retorneEOF
).Isso deve funcionar em todas as distribuições Linux e em todos os principais BSDs.
fonte
tail
falha falhar, muitos programas poderão falhar porque o buffer do canal está cheio./dev/null
não serão assim.No magic
é um princípio orientador na filosofia UNIX./dev/null
é mágica,mknod /dev/null c 1 3
é a fórmula mágica para invocá-lo. (E você precisa de super-poderes para isso ...)Certa vez, descobri da maneira mais difícil que / dev / null não precisa ser um arquivo dev especial. Há muito tempo, o / dev / null em um sistema Ultrix no trabalho foi excluído; portanto, na próxima vez que um programa foi redirecionado para / dev / null, acabou sendo um arquivo normal, cheio da saída desse programa. (Eu acho que não era 'nenhum arquivo ou diretório', o que significava que, quando estávamos tentando descobrir o que estava acontecendo, faríamos
cat /dev/null
e saberíamos ono such file or directory
que confundia o inferno conosco).Portanto, minha sugestão seria substituí-lo por um pipe nomeado e, em seguida, anexar um programa ao pipe que o leria e o monitoraria.
fonte
/dev/null
sempre de retornar 0 bytes em um read (cat /dev/null > foo
). Ter/dev/null
um arquivo regular com o conteúdo quebraria essa expectativa.Penso em uma idéia em que / dev / null pode ser um link simbólico para um descritor de arquivo, mas com o mecanismo add code para determinar se a operação é lida ou escrita e, se for lida, ela deve realmente ler de / dev / actualnull criado separadamente com mknod e se for write, anote o programa que está chamando e tente registrar / contar para analisar os programas que usam / dev / null para gravação. Isso vai custar muito em termos de desempenho, embora eu suponha. Eu acho que não é prático, já que a maioria dos programas ou códigos shell usa o redirecionamento de qualquer maneira. Pode ser inotify poderia ser usado para monitorar o uso de / dev / null? ou reescreva o código do kernel que lida com dispositivos 1: 3, compile e reinstale novamente, experimentável.
fonte
/dev/null
de um daemon), esshd
ainda reclamei e não iniciei.sshd
(pelo menos, como fornecido para o Debian Squeeze) se queixa,sshd: cannot create /dev/null
se for qualquer coisa, menos a implementação mais comum.