awk remote multiple hosts print remote hostname and output


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk remote multiple hosts print remote hostname and output
# 1  
Old 09-24-2019
awk remote multiple hosts print remote hostname and output

Hi all,
i'm trying to gether multiple pattern on remote hosts, and trying to print hostname and the pattern,
Code:
ssh remoteserver1 -C 'hostname 2>&1;cat /var/log/server1.log | awk -F ";" '"'"'{ print " "$2" "$5}'"'"'| sort | uniq -c | sort -g -r '

The output is the following,
Code:
 remoteserver1
  5272  3 service Hit with key 
   824  4 service Hit with key
   641  1000 service Hit with key
   264  1000 service Hit with key
    91  1000 service Hit with key
    76  1 service Hit with key
     4  7 service Hit with key
     1  1 service Hit with key

I need to output the following format

Code:
remoteserver1
			5272		3	service Hit with key
			824 		4	service Hit with key
			641		1000	service Hit with key
			264		1000	service Hit with key
			91		1000	service Hit with key
			76		1	service Hit with key
			4		7	service Hit with key
			1		1	service Hit with key

Could you please support on this?
# 2  
Old 09-24-2019
Try printing one or two <TAB> chars in lieu of the single space character, or set awk's OFS to <TAB>.




EDIT: You might also try

Code:
ssh remoteserver1 -C 'hostname 2>&1;  awk -F ";" '{CNT[$4 OFS $5]++} END {for (c in CNT) print "", CNT[c], c | "sort -gr"}' OFS="\t" /var/log/server1.log'


Last edited by RudiC; 09-24-2019 at 01:59 PM..
# 3  
Old 09-25-2019
Quote:
Originally Posted by RudiC

EDIT: You might also try

Code:
ssh remoteserver1 -C 'hostname 2>&1;  awk -F ";" '{CNT[$4 OFS $5]++} END {for (c in CNT) print "", CNT[c], c | "sort -gr"}' OFS="\t" /var/log/server1.log'

Thank for input RudiC,
on this i'm getting
Code:
-bash: syntax error near unexpected token `('

Any idea?
# 4  
Old 09-25-2019
Hmmm - quoting seems to be a problem - I didn't test the final version when having exchanged my parameters with yours. What is the -C option meant for?

Try
Code:
ssh remoteserver1 'hostname 2>&1;  awk -F ";" '"'"'{CNT[$4$2 OFS $5]++} END {for (c in CNT) print "", CNT[c], c | "sort -gr"}'"'"' OFS="\t" /var/log/server1.log'


Last edited by RudiC; 09-25-2019 at 05:39 AM.. Reason: changed $4 to $2...
# 5  
Old 09-25-2019
Quote:
Originally Posted by RudiC
What is the -C option meant for?
Hi RudiC,
the -C as per ssh manual stands for
Code:
     -C      Requests compression of all data (including stdin, stdout, stderr, and data for forwarded X11, TCP and UNIX-domain connections).  The compression algorithm is the
             same used by gzip(1), and the “level”¯ can be controlled by the CompressionLevel option for protocol version 1.  Compression is desirable on modem lines and other
             slow connections, but will only slow down things on fast networks.  The default value can be set on a host-by-host basis in the configuration files; see the
             Compression option.

The suggested command is printing tha same output as the per my request without tabing the hostname, any idea buddy?
# 6  
Old 09-25-2019
The tabbing works when I test it. You may want to play around with OFS, and printed (dummy) fields. (I used $4 for my test; change it to $2 for yor case...)



Are you on a slow modem? If not, -C is counterproductive...
# 7  
Old 09-25-2019
Quote:
Originally Posted by RudiC
The tabbing works when I test it.
Yes the tabbing works but i need an empty collumn down the hostname,

as i seem a bit difficutt what do you think, can i print the hostname inside awk, so it woud be like this
Code:
ssh $i 'cat /var/log/server1.log | awk -F ";" '"'"'{print ","$2","$5",""$i"}'"'"'| sort | uniq -c | sort -g -r '

is this feasible?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Grep remote multiple hosts output to local server

Hello all, i'm trying to create a report by greping a pattern on multiple remote hosts and creta a simple report, actually i did this, is ther any better way to do this. #!/bin/bash for host in `cat RemoteHosts` do ssh $host -C 'hostname 2>&1; grep ERROR /var/log/WebServer.log.2019-09-21... (0 Replies)
Discussion started by: charli1
0 Replies

2. Solaris

How to copy a tar file on a series of remote hosts and untar it on those hosts?

Am trying to copy a tar file onto a series of remote hosts and untar it at the destination. Need to do this without having to do multiple ssh. Actions to perform within a single ssh session via shell script - copy a file - untar at destination (remote host) OS : Linux RHEL6 (3 Replies)
Discussion started by: sankasu
3 Replies

3. Shell Programming and Scripting

Ssh to validate multiple remote hosts connection validation.

Dear Folks, I am trying to read a config file contains ip and port numbers. i want to read each line of the config file and check ssh connection is happening or not. Kindly guide. Config file: abc@1.2.342 22 abc@1.2.343 22 abc@1.2.344 22 abc@1.2.345 22... (9 Replies)
Discussion started by: sadique.manzar
9 Replies

4. Shell Programming and Scripting

Ssh to multiple hosts and then run multiple for loops under remote session

Hello, I am trying to login to multiple servers and i have to run multiple loops to gather some details..Could you please help me out. I am specifically facing issues while running for loops. I have to run multiple for loops in else condition. but the below code is giving errors in for... (2 Replies)
Discussion started by: mohit_vardhani
2 Replies

5. Shell Programming and Scripting

Making output of data from remote hosts smaller

so i'm doing something similar to this: ssh myname@remotehost 'tail -800 /var/log/some.log' Now, as you can see, this is a lot of data to be passing back and forth over a network. Is there anything i can do to make the output smaller (zip it on the fly, compress?) and then when the data... (4 Replies)
Discussion started by: SkySmart
4 Replies

6. Shell Programming and Scripting

Running a script on multiple remote hosts at once

I have a script on about 15 hosts that I need to run for each host whenever I want (not crontab). Problem is, this script takes 5-10 mins to run for each host. Is there a way I can run the script in parallel for all the hosts instead of 1 at a time? Also, I'm remotely running the script on the... (3 Replies)
Discussion started by: mrskittles99
3 Replies

7. UNIX for Advanced & Expert Users

remote hosts and wide output?

Hello forum: I am curious about some output that I get using an alias <command> on a remote host and I wondered if someone could point me in the right direction. Symptoms: Using "ssh -qi /path/to/key root@som.ipa.ddr.ess mail" (or variation of via alias) only gives a partial textual... (7 Replies)
Discussion started by: Habitual
7 Replies

8. Debian

Launch remote gui apps in remote hosts

Hi, I've been looking for a way to execute a console program (is in windows but by now I accept the linux way) from a linux machine, but this program has to be opened in the remote side. Linux machine acts only as a "signaling" host. My program has to open the camera in the remote side, but only... (7 Replies)
Discussion started by: zauberberg
7 Replies

9. UNIX for Dummies Questions & Answers

How to Know is a Remote hosts have open port

Hi gurus of unix!!!!, I have a little question. I nedd your helps The scenarios is the following I have tree equipment that are installed in different places. I use a carrier to interconnect the equipment. Some Port's (TCP) need to be open for an application that must be function correctly. For... (3 Replies)
Discussion started by: andresguillen
3 Replies

10. UNIX for Advanced & Expert Users

ftp into remote hosts

Hi all, Have used ftp to transfer files from remote host to localhost. I was wondering how can I ftp into remote hosts. for example from a unix box, connect to an external server and then ftp that file into mainframe ? I would like to avoid pulling it to unix box and then ftping to mainframe.... (1 Reply)
Discussion started by: kodermanna
1 Replies
Login or Register to Ask a Question