37 votes

Comment puis-je suivre un fichier distant?

J'essaie de trouver un bon moyen de queue d'un fichier sur un hôte distant. C'est sur un réseau interne de machines Linux. Les exigences sont les suivantes:

  1. Doit être bien comportés (sans supplément de processus autour de la pose, ou de continuer de sortie)

  2. Ne peut pas exiger de quelqu'un animal de compagnie module Perl.

  3. Peut être invoquée par Perl.

  4. Si possible, ne nécessite pas une coutume construit script ou utilitaire sur l'ordinateur distant (régulier linux utilitaires sont beaux)

Les solutions que j'ai essayé sont généralement de ce type

ssh remotemachine -f <some command>

"certains de commande" a été:

tail -f logfile

De base de la queue ne fonctionne pas parce que le processus distant continue à écrire de sortie à la borne après l'ssh processus meurt.

$socket = IO:Socket::INET->new(...);
$pid = fork();
if(!$pid)
{
  exec("ssh $host -f '<script which connects to socket and writes>'");
  exit;
}

$client = $socket->accept;
while(<$client>)
{
  print $_;
}

Cela fonctionne mieux, car il n'y a pas de sortie sur l'écran après le processus local de sorties, mais le processus distant ne pas comprendre que son support est en panne et il vit indéfiniment.

65voto

innaM Points 22831

As-tu essayé

 ssh -t remotemachine <some command>
 

au lieu de

 -f
 

?

2voto

Leon Timmermans Points 23230

Quelques idées:

  • Vous pouvez le monter sur NFS ou CIFS, puis utiliser File :: Tail .
  • Vous pouvez utiliser l'un des modules SSH de Perl (il y en a plusieurs), combiné avec tail -f .

2voto

Kyle Browning Points 604

Vous ne pouvez essayer que Survlog Its OS X.

texte alternatif

1voto

Ranjeet Points 163

Netcat devrait le faire pour vous.

1voto

user1381775 Points 21

Vous pouvez Tail des fichiers à distance en utilisant bash et rsync, je l'utilise et c'est un excellent script bash jetez un oeil au tutoriel suivant

Fichiers de queue à distance en utilisant bash et rsync

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X