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

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.
ViclynAsked:
Who is Participating?
 
woolmilkporcCommented:
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
 
ViclynAuthor Commented:
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
 
woolmilkporcCommented:
Did you notice that I edited my answer to add the "-tt" flag to the ssh command?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.