Differences

This shows you the differences between two versions of the page.

Link to this comparison view

wiki:infrastructure_tools:ssh:ssh-shell-command [2014/02/01 23:47] (current)
Line 1: Line 1:
 +====== SSH - Shell command ======
 +
 +===== Preface =====
 +
 +In general it is possible to say that in case when you’ll need to run a remote command on SSH Server it not necessary to connect to terminal ​ / console of SSH Server. With SSH protocol it is possible to send command directly to the SSH Server without connecting to a terminal / console of the SSH Server. This is really handy in the case that you are writing for example a script that will connect to several servers only for running an command to get the data from SSH Server.
 +
 +===== Syntax =====
 +
 +It is possible to use this example on SSH Client site
 +
 +<​code>​
 +[user@SSH_Client ~]$  ssh user@SSH_Server "uname -a" ​                                          # Connect to SSH Server and run command "uname -a"
 +user@ssh_server'​s password:
 +Linux SSH_Server 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/​Linux ​   # Result of command
 +[user@SSH_Client ~]$
 +</​code>​
 +===== Simple Example =====
 +
 +For example you have more SSH Servers and you need to know if some process is running on this servers (I will check crond process). \\
 +How to do it:\\
 +1.) Connect manually to all servers and check this\\
 +2.) Use SSH protocol and SSH Agent (as we have our public key stored on all servers)\\
 +3.) Another that are not related to SSH or not secure enough.
 +
 +On the SSH Client server you can write short script:
 +
 +<​code>​
 +#​!/​bin/​bash ​                                             # Short example of " simple_ssh_script.sh "
 +
 +loggin_name="​user"; ​                                     # User name used for SSH Server access
 +list_of_servers="​SSH_Server1 SSH_Server2"; ​              # List of SSH Server
 +
 +for i in $list_of_servers ​                               # For all SSH Servers
 + do
 +    echo $i":";​
 +    ssh -l $loggin_name $i "ps -C crond" ;               # Connect to SSH Server and run the command
 +    echo "";​
 + done
 +
 +exit 0;
 +</​code>​
 +
 +<note tip> In case like this it is really handy to use SSH Agent and SSH Key's instead Passowrd</​note>​
 +
 +Result
 +
 +<​code>​
 +[user@SSH_Client ~]$ ./​simple_ssh_script.sh
 +SSH_Server1
 +  PID TTY          TIME CMD
 + 1202 ?        00:00:01 crond
 +
 +SSH_Server2
 +  PID TTY          TIME CMD
 + 1211 ?        00:00:01 crond
 +[user@SSH_Client ~]$
 +</​code>​
  
Navigation
Print/export
QR Code
QR Code wiki:infrastructure_tools:ssh:ssh-shell-command (generated for current page)