Darren
Darren

Reputation: 3

Run command multiple linux server

One of my tasks at work is to check the health/status of multiple Linux servers everyday. I'm thinking of a way to automate this task (without having to login to each server everyday). I'm a newbie system admin by the way. Initially, my idea was to setup a cron job that would run scripts and email the output. Unfortunately, it's not possible to send mail from the servers as of the moment.

I was thinking of running the command in parallel, but I don't know how. For example, how can I see output of df -h without logging in to servers one by one.

Upvotes: 0

Views: 976

Answers (3)

ericcurtin
ericcurtin

Reputation: 1717

Create a file /etc/sxx/hosts

populate like so:

[grp_ips]
1.1.1.1
2.2.2.2
3.3.3.3

share ssh key on all machines.

Install sxx from package:

https://github.com/ericcurtin/sxx/releases

Then run command like so:

sxx username@grp_ips "whatever bash command"

Upvotes: 0

Jakob Pålsson
Jakob Pålsson

Reputation: 307

You can run ssh with the -t flag to open a ssh session, run a command and then close the session. But to get this fully automated you should automate the login process to every server so that you don't need to type the password for every server.

So to run df -hon a remote server and then close the session you would run ssh -t [email protected] "df -h". Then you can process that output however you want.

One way of automating this could be to write a bash script that runs this command for every server and process the output to check the health of the server.

For further information about the -t flag or how you can automate the login process for ssh.

https://www.novell.com/coolsolutions/tip/16747.html

https://serverfault.com/questions/241588/how-to-automate-ssh-login-with-password

Upvotes: 1

Brian
Brian

Reputation: 1

You can use ssh tunnels or just simply ssh for this purpose. With ssh tunnel you can redirect the outputs to your machine, or as an alternative, you can run the ssh with the remote commands on your machine then get the ouput on your machine too.

Please check the following pages for further reading:

http://blog.trackets.com/2014/05/17/ssh-tunnel-local-and-remote-port-forwarding-explained-with-examples.html

https://www.google.hu/amp/s/www.cyberciti.biz/faq/unix-linux-execute-command-using-ssh/amp/

If you want to avoid manual login, use ssh keys.

Upvotes: 0

Related Questions