Run awk command inside ssh


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Run awk command inside ssh
# 1  
Run awk command inside ssh

I am trying to run an awk command inside of ssh and it is not working. These are AIX servers.

Code:
for i in `cat servers`; do ssh $i "/bin/hostname; df -g | awk '/dev/ && $4+0 > 70'"; done
server1
server2
server3
server4

I also tried these two methods and they did not work. It just seemed to hang like this.
Code:
for i in `cat servers`; do ssh $i '/bin/hostname; df -g | awk '/dev/ && $4+0 > 80''; done
for i in `cat servers`; do ssh $i '/bin/hostname; df -g | awk "/dev/ && $4+0 > 80"'; done

# 2  
Here documents work for this situation, example with ssh keys set up :

Code:
ssh somewhere << EOF
  ls some_folder; 
  cd ./some_folder
  ./do_some_action.sh  'some params'
  pwd
  ./do_ some_other_action  'other params'
 exit


EOF

# 3  
Try escaping awk's $ sign.
This User Gave Thanks to RudiC For This Post:
# 4  
Some advanced comments (this is the Advanced forum)
If you have a string in ' ' and want to have embedded ' ' (for the remote host) then use '\'' for each embedded '
Code:
for i in `cat servers`; do ssh $i 'hostname; df -g | awk '\''/dev/ && $4+0 > 80'\'''; done

(In this example you could omit the last '' of course.)

A here document like
Code:
ssh remotehost << 'EOF'
remote commands...
EOF

(quote the first EOF!) will solve most such head aches.

The clean solution is: two scripts!
A remotescript and
the ssh script like
Code:
ssh remotehost bash < remotescript.sh

Without any local evaluation the remotescript is sent to the remote host.
# 5  
Quoting is a pain in the ass if you try to do it in combination with ssh commands.

Some hints:
  • Perform the actual textprocessing locally if possible, like this: ssh remoteserver command | grep ... | cut ... | awk ...
  • Put all what you want to do into a script, copy the script to remote and run it. I wrote a small script myself, which does that for me on a list of servers:
    • check connectivity to server
    • copy script package to server
    • extract script package on server
    • run script on server
    • delete script package
  • If you have a list of servers you have to manage regularly, dive into some management or admin tool that allows the tasks for multiple servers(pssh, ansible, puppet, chef, saltstack, ...)

I just checked google. Seems that AIX has some support on the primary linux targeted config management tools above:
AIX configuration management with ... Something

Last edited by stomp; 6 Days Ago at 11:11 AM..
# 6  
With my proposal the remote shell (e.g. bash) runs the input stream - no need to copy/delete any files.
You can even use parameters:
Code:
ssh remotehost /bin/bash -s arg1 arg2 < remotescript.sh

arg1 and arg2 are passed to $1 and $2, respectively.
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #209
Difficulty: Medium
The development work for OSPF prior to its publication as open standard was undertaken largely by the Digital Equipment Corporation.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Listen sharp time to run a command inside a script

Hello, Just wondered if there is any possibility to run a command at sharp time inside a script in linux. My question is not about crontab Example: #!/bin/bash cd /home/database for i in * do command 1 if time is 19:00, day is Monday then run command2 if time is 20:00, day is... (10 Replies)
Discussion started by: baris35
10 Replies

2. Shell Programming and Scripting

Run bash command inside zsh script

Hi, I would like to run following code in bash inside a zsh script. (In this case is output unfortunately very different if you run it in zsh). I tried to put "bash" in front of the code but I obtained following error message "bash: do: No such file or directory " eve though I merged the whole... (7 Replies)
Discussion started by: kamcamonty
7 Replies

3. Shell Programming and Scripting

Unable to run command after ssh

Hello, I am trying to create a ksh script to login to server and collect gather output of some command to troubleshoot some issue. DATE=`date +%b.%d.%Y.%M.%H` echo " Enter emp id to login to server" read Eid Eid=$Eid echo " Enter hostname of the system" read HOST HOST=$HOST... (2 Replies)
Discussion started by: saurabh84g
2 Replies

4. Shell Programming and Scripting

Bash- Command run from script does not pass full parameters with spaces inside

There's a JavaScript file that I call from command line (there's a framework) like so: ./RunDiag.js param1:'string one here' param2:'string two here' I have a shell script where I invoke the above command. I can run it in a script as simple as this #!/bin/bash stuff="./RunDiag.js... (4 Replies)
Discussion started by: AcerAspirant
4 Replies

5. Shell Programming and Scripting

run command with ssh[solved]

Hi all, Is it possible to make this possible ? $ echo $SKY_HOME /var/sink/SKY $ echo $SKY_HOME /home/smily/SKY $ ssh root@xyz "echo $SKY_HOME" root@xyz 's password: ****** /home/smily/SKY wrong output I was expecting the output as /var/sink/SKY (3 Replies)
Discussion started by: linuxadmin
3 Replies

6. Shell Programming and Scripting

Using ssh command inside a script

Hi, I have a script file in server A. Inside the script file, I first have a ssh command that will connect to a remote server B. In the same script file itself, I have a sequence of commands that has to be run in server B. I am embedding these commands in the script file that I have in server A.... (2 Replies)
Discussion started by: mick_000
2 Replies

7. Shell Programming and Scripting

Need help! command working ok when executed in command line, but fails when run inside a script!

Hi everyone, when executing this command in unix: echo "WM7 Fatal Alerts:", $(cat query1.txt) > a.csvIt works fine, but running this command in a shell script gives an error saying that there's a syntax error. here is content of my script: tdbsrvr$ vi hc.sh "hc.sh" 22 lines, 509... (4 Replies)
Discussion started by: 4dirk1
4 Replies

8. Solaris

Run command on sc via ssh

when i run a command on ALOM via ssh i get following error ssh root@10.23.12.51 showhosts Password: Waiting for daemons to initialize... Daemons ready shell: Invalid credentials how can i run commands without actually loging to the sc (3 Replies)
Discussion started by: fugitive
3 Replies

9. Shell Programming and Scripting

Run the command inside perl script

I have a command which will run fine in a unix command prompt. Can you tell how to interprete this command inside perl script...... The command is : perl -pe 's/(\|333\}.*)\}$/$1|1.6}/' FIA.txt This will search for the number 333 and appends 1.6 at the end of that line....... (1 Reply)
Discussion started by: vinay123
1 Replies

10. Shell Programming and Scripting

How do I get ssh to run a command in one line?

How would I combine something like: localserver# ssh remoteserver remoteserver# find blah blah blah into a one liner that would ssh to the remote server and run the find command, so I could put it in a script to automatically go out and run things on remote servers with out needed user... (2 Replies)
Discussion started by: LordJezo
2 Replies

Featured Tech Videos