bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: problem with tail -f that need to add to each line constant string a


From: dan sas
Subject: Re: problem with tail -f that need to add to each line constant string at the beginning of each line
Date: Sun, 30 Oct 2011 15:07:49 +0200

Hi

what about if i want to run both commands simultaneous and send the output
to a file
how can i do that



2011/10/29 Bob Proulx <bob@proulx.com>

> dan12341234 wrote:
> > im running 4 scripts that perform ssh and tail -f on a file exist on 4
> > servers and display on the screen.
> > (1 script per servers)
> >
> > ssh server1 tail -f /var/log/apache/access_log
> > ssh server2 tail -f /var/log/apache/access_log
> > ssh server3 tail -f /var/log/apache/access_log
> > ssh server4 tail -f /var/log/apache/access_log
> >
> > the problem is that the display dosent show any identification from which
> > server each line
> >
> > what i need is something with an echo servername, before each line
> printed
> > to the screen
>
> There are many specialized programs to do exactly what you are asking
> such as dsh (distributed shell) and other tools.  You might want to
> investigate those.
>
> But you can do what you want by using sed to prepend to the line.
>
>  ssh -n server1 'tail -f /var/log/syslog | sed --unbuffered
> "s/^/$(hostname): /"'
>  ssh -n server2 'tail -f /var/log/syslog | sed --unbuffered
> "s/^/$(hostname): /"'
>
> You might consider applying the commands as standard input instead.  I
> think it is easier to avoid quoting problems that way.
>
>  echo 'tail -f /var/log/syslog | sed --unbuffered "s/^/$(hostname): /"' |
> ssh -T server1
>
> Bob
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]