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
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)
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)
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)
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)
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)
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)
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)
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)
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
LEARN ABOUT DEBIAN
gmt_shell_functions
GMT_SHELL_FUNCTIONS.SH(1gmt) Generic Mapping Tools GMT_SHELL_FUNCTIONS.SH(1gmt)NAME
gmt_shell_functions.sh - Practical functions to be used in GMT bourne shell scripts
SYNOPSIS
gmt_init_tmpdir
gmt_remove_tmpdir
gmt_clean_up [prefix]
gmt_message message
gmt_abort message
gmt_nrecords file(s)
gmt_nfields string
gmt_get_field string
gmt_get_region file(s) [options]
gmt_get_gridregion file [options]
gmt_get_map_width -R -J
gmt_get_map_height -R -J
gmt_set_psfile file
gmt_set_framename prefix framenumber
gmt_set_framenext framenumber
DESCRIPTION
gmt_shell_functions.sh provides a set of functions to Bourne (again) shell scripts in support of GMT. The calling shell script should
include the following line, before the functions can be used:
. gmt_shell_functions.sh
Once included in a shell script, gmt_shell_functions.sh allows GMT users to do some scripting more easily than otherwise. The functions
made available are:
gmt_init_tmpdir
Creates a temporary directory in /tmp or (when defined) in the directory specified by the environment variable TMPDIR. The name of
the temporary directory is returned as environment variable GMT_TMPDIR. This function also causes GMT to run in `isolation mode',
i.e. all temporary files will be created in GMT_TMPDIR and the .gmtdefaults file will not be adjusted.
gmt_remove_tmpdir
Removes the temporary directory and unsets the GMT_TMPDIR environment variable.
gmt_cleanup
Remove all files and directories in which the current process number is part of the file name. If the optional prefix is given then
we also delete all files and directories that begins with the given prefix.
gmt_message
Send a message to standard error.
gmt_abort
Send a message to standard error and exit the shell.
gmt_nrecords
Returns the total number of lines in file(s)
gmt_nfields
Returns the number of fields or words in string
gmt_get_field
Returns the given field in a string. Must pass string between double quotes to preserve it as one item.
gmt_get_region
Returns the region in the form w/e/s/n based on the data in table file(s). Optionally add -Idx/dy to round off the answer.
gmt_get_gridregion
Returns the region in the form w/e/s/n based on the header of a grid file. Optionally add -Idx/dy to round off the answer.
gmt_map_width
Expects the user to give the desired -R -J settings and returns the map width in the current measurement unit.
gmt_map_height
Expects the user to give the desired -R -J settings and returns the map height in the current measurement unit.
gmt_set_psfile
Create the output PostScript file name based on the base name of a given file (usually the script name $0).
gmt_set_framename
Returns a lexically ordered filename stem (i.e., no extension) given the file prefix and the current frame number, using a width of
6 for the integer including leading zeros. Useful when creating animations and lexically sorted filenames are required.
gmt_set_framenext
Accepts the current frame integer counter and returns the next integer counter.
NOTES
1. These functions only work in the bourne shell (sh) and their derivatives (like ash, bash, ksh and zsh). These functions do not work in
the C shell (csh) or their derivatives (like tcsh), and cannot be used in DOS batch scripts either.
2. gmt_shell_functions.sh were first introduced in GMT version 4.2.2 and have since been regularly expanded with other practical scripting
short-cuts. If you want to suggest other functions, please do so by mailing to the GMT mailing list: gmt-help@lists.hawaii.edu.
SEE ALSO GMT(1), sh(1), bash(1), minmax(1), grdinfo(1)GMT 4.5.7 15 Jul 2011 GMT_SHELL_FUNCTIONS.SH(1gmt)