Sponsored Content
Top Forums Shell Programming and Scripting SSH sessions from bash script Post 302307130 by qneill on Tuesday 14th of April 2009 04:40:39 PM
Old 04-14-2009
No reason you have to use a "here script" with <<EOF, you can pipe commands directly to the standard input of ssh, for example using echo:

Code:
$ D=/tmp; F1=x1; echo "F2=$D/$F1
echo on \$(hostname): escaped: D=\$D F1=\$F1 F2=\$F2
echo on \$(hostname): not escaped: D=$D F1=$F1 F2=$F2
df $D >\$F2; ls -l \$F2; cat \$F2; rm -rf \$F2; ls -l \$F2
" | ssh qneill@qneill-linux

this shows a couple of local variables D and F1 (expanded locally when the local echo is executed), and a remote variable F2 (expands to nothing locally, but remotely expands to the assigned value). The commands produce this output:

Code:
on qneill-linux: escaped: D= F1= F2=/tmp/x1
on qneill-linux: not escaped: D=/tmp F1=x1 F2=
-rw-r--r-- 1 qneill 30101 125 2009-04-14 15:25 /tmp/x1
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda1            147581948  78980980  61104240  57% /
ls: /tmp/x1: No such file or directory

The commands shown use the local variable D and remote variable F2, creating, using, and removing a file (/tmp/x1 on the remote machine).

If all of your variable expansions are constant, or only depend on remote things, you can use single quotes and avoid having to escape all the $ signs:

Code:
echo 'D=/tmp; F1=x1; F2=$D/$F1
echo on $(hostname): D=$D F1=$F1 F2=$F2
df $D >$F2; ls -l $F2; cat $F2; rm -rf $F2; ls -l $F2
' | ssh qneill@qneill-linux

which yields
Code:
on qneill-linux: D=/tmp F1=x1 F2=/tmp/x1
-rw-r--r-- 1 qneill 30101 125 2009-04-14 15:34 /tmp/x1
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda1            147581948  78980960  61104260  57% /
ls: /tmp/x1: No such file or directory

Once you start using this mechanism for anything complicated, you will quickly run into many quoting issues. Consider writing a script that generates code on the remote system, or a templated script that can be parameterized locally or remotely as needed, then executed remotely with a single call to ssh.
--
qneill
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

bash script for ssh login-

hi. I need a bash script which can login to an other mashin via SSH and then run some commands and then return the result to my mashine. I dont know where to begin, I think first I will need a ssh connection, dont know how to make it, then , do I need a ftp connection between the 2 mashins to... (5 Replies)
Discussion started by: big_pil
5 Replies

2. Shell Programming and Scripting

bash ssh login script

hello anyone have done ssh login script without "expect" (automatic login from host A / user b to Host B / user b without enter any passwords)? cheers (2 Replies)
Discussion started by: modcan
2 Replies

3. UNIX for Advanced & Expert Users

How to monitor SSH sessions

Hi All Is it possible to log and monitor user activities in a SSH session. Is there any configuration or a patch to apply ?. Im currently using OpenSSH with AIX 5.3L and my syslog.conf includes auth.* /var/log/sshd/auth.log and in sshd_config it shows SysLogFacility AUTH... (4 Replies)
Discussion started by: Anuradhai4i
4 Replies

4. Shell Programming and Scripting

SSH sessions from bash script

Hi Forum. First of all thanks for reading. I need some help here. I have been checking some other posts about this issue, but I still have problems... I'm trying to conect througn ssh to several machines to kill some process and I have problems with the " ' ' ". This is what I'm trying... (2 Replies)
Discussion started by: gtangil
2 Replies

5. UNIX for Dummies Questions & Answers

Automatic logging (capture screen output) of telnet/ssh sessions on a Solaris node

Hi I am working in Solaris 10 and I want to monitor logs for every telnet/ssh session that tries to connect to the server. I need these logs to be generated in a file that I can fetch using ftp. I am a new user and a stepwise detail will be great BR saGGee (3 Replies)
Discussion started by: saggee
3 Replies

6. Shell Programming and Scripting

ssh to run bash script

I want to use ssh to start a bash script that I have uploaded to a webhost. How do I do that from linux? (2 Replies)
Discussion started by: locoroco
2 Replies

7. Shell Programming and Scripting

Help on an ssh bash script...

Hey Guys, I want to have a bash script on my computer (Mac OS X 10.6.8) that can ssh into my iPod and respring. I know how do this by typing in "ssh root@10.0.1.10" and then typing in the password "alpine". From there i simply type "respring". I want to possibly put this into a shell script so it... (0 Replies)
Discussion started by: jetstream131
0 Replies

8. Shell Programming and Scripting

[Solved] Using SSH in bash script

Hello, I am writing a script that has to log in to X number of servers over a full C class range. I am only keyed on a certain number of these servers and this can change from time to time. The part of my script that deals with this is for i in $(cat $server_list); do ssh ... (0 Replies)
Discussion started by: colinireland
0 Replies

9. Red Hat

multiple ssh sessions

Hi, I use OpenSSH to log on to a RH server but when I enter the password 2 session windows appear. I only need one so can anyone advise where I can rectify this? R, D. (2 Replies)
Discussion started by: Duffs22
2 Replies

10. UNIX for Beginners Questions & Answers

Find number of ACTIVE SSH putty sessions, excluding where the user hopped on to a diff server

Hi - If iam logged on to server A, on 4 putty windows using SSH ... and out of these 4 logged-in sessions, in one of the sessions if i did SSH from server A to server B; i would now have 4 putty windows sessions ... of which 3 are actively logged on to Server A while 1 putty window is actively... (2 Replies)
Discussion started by: i4ismail
2 Replies
Tcl_AllowExceptions(3)					      Tcl Library Procedures					    Tcl_AllowExceptions(3)

__________________________________________________________________________________________________________________________________________________

NAME
Tcl_AllowExceptions - allow all exceptions in next script evaluation SYNOPSIS
#include <tcl.h> Tcl_AllowExceptions(interp) ARGUMENTS
Tcl_Interp *interp (in) Interpreter in which script will be evaluated. _________________________________________________________________ DESCRIPTION
If a script is evaluated at top-level (i.e. no other scripts are pending evaluation when the script is invoked), and if the script termi- nates with a completion code other than TCL_OK, TCL_ERROR or TCL_RETURN, then Tcl normally converts this into a TCL_ERROR return with an appropriate message. The particular script evaluation procedures of Tcl that act in the manner are Tcl_EvalObjEx, Tcl_EvalObjv, Tcl_Eval, Tcl_EvalEx, Tcl_GlobalEval, Tcl_GlobalEvalObj, Tcl_VarEval and Tcl_VarEvalVA. However, if Tcl_AllowExceptions is invoked immediately before calling one of those a procedures, then arbitrary completion codes are per- mitted from the script, and they are returned without modification. This is useful in cases where the caller can deal with exceptions such as TCL_BREAK or TCL_CONTINUE in a meaningful way. KEYWORDS
continue, break, exception, interpreter Tcl 7.4 Tcl_AllowExceptions(3)
All times are GMT -4. The time now is 08:10 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy