Run awk command inside ssh


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Run awk command inside ssh
# 1  
Old 10-25-2019
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  
Old 10-25-2019
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  
Old 10-26-2019
Try escaping awk's $ sign.
This User Gave Thanks to RudiC For This Post:
# 4  
Old 11-30-2019
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  
Old 11-30-2019
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; 11-30-2019 at 11:11 AM..
# 6  
Old 12-01-2019
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 to Ask a Question

Previous Thread | Next Thread

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 to run a command in different machine using SSH

how to run a command in different machie in my case script will runs in solaries machine.. in one instance it has to run a command in different machine with different operating system ( linux ) using SSH command i tried ssh -l (login_name) (machine name/host ) " command " but it is... (3 Replies)
Discussion started by: mail2sant
3 Replies
Login or Register to Ask a Question