6
votes

Streamez un fichier en croissance continue sur TCP / IP

J'ai un projet sur lequel je travaille, où un élément de matériel produise de la production qui est enracinement écrite dans un fichier texte. Ce que je dois faire, c'est de diffuser ce fichier car il est écrit sur une simple connexion TCP / IP.

Je tente actuellement de cela par simple Netcat, mais Netcat n'envoie que la partie du fichier écrit à la temps d'exécution. Il ne continue pas d'envoyer le reste. P>

En ce moment, j'ai un serveur à écouter de NetCat sur le port 9000 (simplement à des fins de test): P>

netcat localhost 9000 < c:\OUTPUTFILE


1 commentaires

3 Réponses :


8
votes

Essayez:

netcat localhost 9000 < tail -f /path/to/file


4 commentaires

Oui, ce genre de l'a fait. J'ai trouvé la queue dans le kit de ressources Win 2003. Fonctionne comme un charme. J'ai changé la commande en queue -f c: \ out | Netcat localhost 9000 merci!


Une fois qu'un gars sage a dit, utilisez -f au lieu de -f, car il ajoutera l'option supplémentaire pour réessayer au cas où le service a été redémarré ou que de nouveaux journaux ont été générés!


Cela ne peut peut-être fonctionner que si cela est modifié comme décrit dans le commentaire de @ Grinner (et n'aurait pas dû être marqué accepté sans cette modification). << / code> Spécifie que l'entrée doit être lue à partir d'un fichier nommé queue , pas une commande nommée queue .


Vous n'hésitez pas à modifier et à l'ajuster au besoin.



1
votes

Essayez:

tail /var/log/mail.log -f | nc -C xxx.xxx.xxx.xxx 9000


2 commentaires

Pour des points bonus, il serait bon d'inclure une explication du code et pourquoi cela résout le problème de l'OP.


Le -f doit être avant le nom de fichier pour fonctionner avec des versions de queue qui se conforment strictement à POSIX Utility Syntax Guidelines N ° 9, qui spécifie que toutes les options doivent préciser les opérandes.



-1
votes

essayez NC :

# tail for get last text from file, then find the lines that has TEXT and then stream
# see documentation for nc, -l means create server, -k means not close when client disconnect, waits for anothers clients
tail -f  /output.log | grep "TEXT" | nc -l -k 2000


0 commentaires