Remote shell scripting -


i wanting write script can use grep process on remote server, on each server there user account can ssh out password, idea script will

  • sudo passwordless user account
  • ssh remote server
  • run commands (ps -ef | grep processname)
  • display output on local server
  • close ssh connection
  • exit out of passwordless user account

at minute have:

if [ $1 = -r ] su - useraccount ssh $2 "ps -ef | grep process | grep -v grep" exit else ps -ef | grep process | grep -v grep fi 

the idea here can run script locally if dont have -r option run locally have

script.sh processname 

or remotely

script.sh -r remotehost processname 

i have grep -v grep in there becasue annoys me seeing own grep command in list,
think looks bit cleaner
ideas?

instead of saying

ssh -t host command $argument ... 

say

argument="-abc" command="'command $argument'" 

and offer

sst -t host $command 

the remote machine going have no idea $argument is, sure interpolate string on local machine before sending it. note need tricky quotes, have, above, because cannot interpolate variables inside single ticks ('').

edit:

i have wonder why insisting on running pipes on remote machine. can not say:

ssh -t host -- ps -ef | grep process_name | grep -v grep 

that seems me best way this. don't have mess around variable interpolation , and curious ticks.

edit 2:

can not use sudo -s username ssh foo?


Comments