I have a pel script running as root that needs to read the contents of a file on a remote system, I have an ssh trust relationship as a particular user but not as root.
I then need to write back out to that file again to change it's content a bit.
On the surface this seemed really easy but I'm getting tangled up in all the layers required to actually do this.
I'm tryint to do the following:
This seems to work pretty well but it's including the login banner at the top of the "file" returned and I can't seem to get it to ignore it.
I've tried including '2> /dev/null' at various points in the line to no avail.
In order to get to the bottom of this, I've abstracted that part out into a shell script called 'remote-cat.sh:
Which returns the login header followed by the file contents:
If I change my script to be:
I only see the header:
But if I change the script to use 2> /dev/null:
I just get the header and text combined again like before.
So, where am I going wrong here? Or is there better way to do this in perl without having to do all the su, ssh, cat rubbish?
No joy there, just got the same behaviour as without it.
Quote:
Originally Posted by frank_rizzo
a better solution would be to use scp to copy the file locally and then operate on it.
I was hoping not to have to in order to have fewer temp files kicking round, but I think that might be the way to do it and it actually makes my life easier when trying to write the change back afterwards.
another thing you can try on the remote side is to modify the .profile or whatever .file your shell uses and wrap the commands in this
another thought is that the first two lines are actually being printed from the local machine when you run the su command but before ssh starts to execute. try the tty -s solution there first.
Last edited by frank_rizzo; 04-30-2009 at 11:17 PM..
Reason: forgot code tags
The variables given are already defined ($file1-$file3, $obsid1-$obsid3, and $n=3). When I go to run the code, the terminal outputs "Missing }." I believe the error is with the nesting of variables. It would save a lot of time getting this while loop working.
set i = 1
while (${i} <=... (5 Replies)
I have the basic command written in bash
for element in 1 2
do
if ]; then
set el = "t"
else
set el = "p"
fi
done
but i get the following error
syntax error near unexpected token `for'
` for element in 1 2'
What should i do differently? (3 Replies)
I'm trying to make a dialog window that prints the output of grep that takes the output of find. Unfortunately my nested backticks don't work.
Here is the dialog window:
dialog --stdout --title "test" --backtitle "test" --msgbox "Test:\n `grep -l "${tablica}" `find $string``" 16 60I think I... (2 Replies)
Hello
I try to store stderr into a variable, then if this var is not empty i send an email and stop my script.
I think my problem is due of "<$dump" into my command line.
my bad command line (see samples below on this post)
if ! $returnedStr ;
then
echo ERROR READING DUMP: ... (8 Replies)
Well, I think I've managed to take two different issues and conglomerate them into and embarrasing mess.
#!/bin/bash
# Set some variables
dir1=/path/that/isnt/variable/$variabledir/dir/
dir2=/path/that/isnt/variable/$variabledir/important/"$variabledir"-subdirectory/path/
echo "Gimme... (7 Replies)
As of a week ago i thought a shell was somthing found on a beach.
I'm a virgin when it comes to scripting and i'm having a really bad time here.
What i need to do is prompt for a group number
grep the /etc/groups to get the GID and name
if it exists i want to prompt the user for... (3 Replies)
I'm using the following command to zip a project file, but when it finishes, the resulting zip file contains all the directories above the file I wanted zipped, myapp.app, each one empty until you get to the actual app.
zip -r myapp.app.zip ... (0 Replies)
hi,
while we writing shell script, i want to ignore interrupts likes - "control + C" or "control + \"
coz I just print out the message.
how can i do this?
thanks
min (3 Replies)