Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Script or command to: List a directory and cat a file on multiple servers

Posted on 2014-04-14
3
Medium Priority
?
670 Views
Last Modified: 2014-04-14
I'd like to write a quick script in bash to list the contents of a file located in /home/users/thisfile.txt

For example:

From
homeserver I'd like to execute a script called: what_thisfile.sh

whats_thisfile.sh should contain

ssh user@server_fus; cat /home/users/thisfile.txt
ls
read -s -n 1 -p "Press any key"
ssh user@server_cda; cat/home /users/thisfile.txt
ls
read -s -n 1 -p "Press any key"
...etc

The read command just pauses for a moment, so I can see what the file contains.

What's the best way to do what I'm describing? ...a command line for loop would be fine, it wouldn't have to be a script file.
0
Comment
Question by:Viclyn
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 68

Accepted Solution

by:
woolmilkporc earned 2000 total points
ID: 39999252
Create a file named e.g "servers.txt" containing your servernames, one per line.

Example:

server_fus
server_cda
server_foo
server_bar
server_baz


Then

for S in $(<servers.txt)
 do
   ssh -tt user@$S '
      cat /home/users/thisfile.txt
      ls
       read -s -n 1 -p "Press any key"  '
done

A one-liner is possible, but really "long":

for S in $(<servers.txt);  do ssh -tt user@$S 'cat /home/users/thisfile.txt;  ls;  read -s -n 1 -p "Press any key"  ';  done

Open in new window


If you can go without "read" (sleep e.g. 1 second instead) we can make it shorter:

xargs -I{} ssh user@{} "cat /home/users/thisfile.txt;  ls; sleep1" <servers.txt
0
 

Author Comment

by:Viclyn
ID: 39999383
The "Press any key" seems to be suppressed. It still works, I was just wondering if there was a way to have it displayed during each iteration...?

But, I consider this answered, and very much appreciate the help.
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 39999385
Did you notice that I edited my answer to add the "-tt" flag to the ssh command?
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Utilizing an array to gracefully append to a list of EmailAddresses
Active Directory replication delay is the cause to many problems.  Here is a super easy script to force Active Directory replication to all sites with by using an elevated PowerShell command prompt, and a tool to verify your changes.
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to moveā€¦
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
Suggested Courses

721 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question