Monitora o total de bytes enviados pela conexão TCP pelo endereço IP

1

Novato sys-admin aqui,

No meu site, os usuários baixam um arquivo de 50MB. Eu quero ser capaz de saber se o download foi concluído para que eu possa executar um script bash. Eu estou em uma pilha LAMP, e o código php para enviar o arquivo é assim ...

<?php
//download.php
//content type
header('Content-type: application/zip');
header('Content-Length: 46380748');
//open/save dialog box
header('Content-Disposition: attachment; filename="file.zip"');
//read from server and write to buffer
readfile('file.zip');
?>

Eu tentei o netstat, mas não consegui chegar a lugar nenhum. Eu vi a conexão TCP, mas não consegui calcular como controlar o total de bytes enviados para compará-lo com o tamanho do arquivo. Eu li que tshark pode fazer o truque, mas isso parece um exagero. Eu estou sentindo falta de algo básico? Isso é algo que eu posso monitorar com o apache? Estou perplexo ...

Obrigado.

    
por Joe 14.04.2011 / 12:28

2 respostas

1

Eu acho que você está no caminho errado aqui, adicionando bytes em interfaces não vai ser uma maneira eficaz de saber se um usuário baixou um arquivo específico. Mesmo se você fizer isso funcionar, você sempre será prejudicado pelo fato de ser um hack frágil.

Você deve investigar outro tipo de acompanhamento de sessão para saber o que seus usuários estão fazendo.

    
por 14.04.2011 / 12:38
1

Confira jnettop ou iftop .

link

link

    
por 14.04.2011 / 12:44