How to run simple single command on multiple Linux servers?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to run simple single command on multiple Linux servers?
# 8  
Old 11-02-2017
I'm not at all sure that I understand what you're trying to do, but note that the each of the background subshells started by:
Code:
    (
    printf "%-29s " "$userhost"
    ssh -nx -o BatchMode=yes "$userhost" 'lsb_release -sd'
    ) </dev/null >"$tmpdir/$userhost" 2>&1 &

writes to a different file for each host. If you want all of the output in a single file and you want to trim off the first part of the lsb_release output you need something more like:
Code:
    (
    release=$(ssh -nx -o BatchMode=yes "$userhost" 'lsb_release -sd')
    printf "%-29s %s\n" "$userhost" "Rel${release##*Rel}"
    ) </dev/null >>"$tmpdir/alluserhosts" 2>&1 &

clearing the output file before you start your loop with:
Code:
>"$tmpdir/alluserhosts"

unless you want the output in that file to grow each time you invoke your script.

Since I don't have access to a system with lsb_release installed, the above is totally untested. But, in theory, it should come close to what you seem to want.
# 9  
Old 11-06-2017
Hmm I think asynchronous background jobs MUST go to separate logs.
Otherwise they might overwrite each other, and the shared log file becomes a mess.
# 10  
Old 11-06-2017
Quote:
Originally Posted by MadeInGermany
Hmm I think asynchronous background jobs MUST go to separate logs.
Otherwise they might overwrite each other, and the shared log file becomes a mess.
Note that in the code I suggested in post #8, the output to the single log file is produced by a single invocation of the printf utility that uses an append redirection operator (>>) instead of the overwrite redirection operator (>) that was in the original code. Although not required by the standards, I would expect the output of that invocation of printf to be produced by a single write() system call, which, when writing the amount of data shown in the examples to a regular file, should be an atomic operation. Using the append redirection should prevent the concurrent background processes from overwriting each other's output and the single printf instead of multiple echos should keep the output from the various background processes from being intermixed.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Run a script on multiple servers

I need to run a script on a bunch of remote servers. how can this be done without ssh into each individual server and run it its under /sbin/script.sh on each server (1 Reply)
Discussion started by: tdubb123
1 Replies

2. Shell Programming and Scripting

Logging in to multiple Linux servers and running the command.

Hi, I am trying to write a script to run a command on multiple linux based servers and get the o/p. I am using ssh to login. It is a celerra box and EMC NAS product. I am able login but i am not able to run nas command nas_pool -size -all the NAS server. I am getting the following error. ... (2 Replies)
Discussion started by: jpkumar10
2 Replies

3. Shell Programming and Scripting

Require single command to start script in multiple servers

I have 9 servers, on each server a script with common name is available. I send a token file to all server from 1 particular server. so when a daemon job checks that token file is available then it triggers the script.. I want to know is there any command or script which I will run/execute on... (16 Replies)
Discussion started by: mirwasim
16 Replies

4. UNIX for Dummies Questions & Answers

How to run multiple command in a single line?

Normally i would do this- cd abc ls -ltr I wish to run above command in a single line, like this- cd abc | ls -ltr But above command doesn't works, it simply runs the second command, ignoring the 1st one. :confused: (4 Replies)
Discussion started by: boy18nj
4 Replies

5. Shell Programming and Scripting

need a script that does a simple task on multiple unix servers.

hi guys, i need a script that does a simple task on multiple aix servers. if possible with both telnet and ssh. the simple task i wanna do is connect to a server and run "ifconfig -a" and get the output. nextweek i need to do similar jobs on like 50 servers... :( can anybody help me with making... (2 Replies)
Discussion started by: curtis911
2 Replies

6. Programming

Would you please give me some idea about single client and multiple servers

Hi, I have a program which needs to connect multiple servers at the same time. The program has to collect data from each of servers and then make a decision regarding to the data received. There are several requirements. 1. Server (s) may shutdown anytime without any ack (e.g.power... (1 Reply)
Discussion started by: sehang
1 Replies

7. Shell Programming and Scripting

Need a script to run on multiple mail servers..

Hello, I am a Unix newbie and I need a script in which I can run a command on multiple servers at work. The command is to start a storage process and I am sick of doing it manually on all servers.. Here's the command: /opt/bss/bin/snmptable -CB -v2c -c P67LzuBm hostname hrStorageTable... (4 Replies)
Discussion started by: kinyyy
4 Replies

8. HP-UX

Automatic execution of commands in multiple servers using single script.

Hi, I've to do a simple job many times whenever it has been asked, just i've to log in to all of fourtien HP servers and i've to execute ps -fu user > temp cat temp|sendmail "xyz@z.com" commands to send the statics of all of 14 servers over the mail to particular user id.. Though logging... (4 Replies)
Discussion started by: vickramshetty
4 Replies

9. SuSE

Regarding accessing multiple servers using single public ip address

Hello, Currently we are having different linux servers (for example: let's assume audio server, video server and text server) to handle requests from outside users. Suppose the outside users in different LAN (Local Area Network), other than the servers. For example user is in 20 series LAN and... (5 Replies)
Discussion started by: navneet_2009
5 Replies

10. UNIX for Dummies Questions & Answers

How to run multiple command in single command?

Dear Unix Guru, I have several directories as below /home/user/ dir1 dir2 dir3 Each directory has different size. I want to print each directory size (Solaris command du -hs .) Can you please guide me how to achieve this? Thanks Bala (2 Replies)
Discussion started by: baluchen
2 Replies
Login or Register to Ask a Question