05-21-2008
Thank you era and Shawn
The script however works fine on sunSSH
It does not work on an OPEN SSH, I tries to tweak in a little more with the regular expressions... but it still does not help.
Any idea how to overcome this problem.
when I execute the same script on OPEN SSH box here is the error I get.
If I logon interactively from the OPEN SSH box and execute the commands one by one, they work. when they are placed in a script the script doesnot work.any help is appreciated.
INFO: SSH list: user@host outgoing x001_ameint_*.zip
ERROR: #^M
ERROR: #==============================================^M
ERROR: #Bowne Marketing & Business Communications^M
ERROR: #SFTP Server (PCN)^M
ERROR: #==============================================^M
ERROR: #^M
ERROR: ^M
ERROR: sftp> sftp> drwx------ 0 0 0 0 May 21 15:25 .
ERROR: drwx------ 0 0 0 0 Mar 17 11:58 ..
ERROR: drwx------ 0 0 0 0 May 21 15:59 archive
ERROR: -rw------- 0 0 0 4152 May 9 11:44 x001_REPORTS_ameint_AIGODN00857.zip
ERROR: -rw------- 0 0 0 42138973 May 19 14:16 x001_ameint_BP010F0010_00002_003.zip.done
ERROR: -rw------- 0 0 0 377449320 Apr 14 14:20 x001_ameint_BP010F0010_00264_001.zip.done
ERROR: -rw------- 0 0 0 637950 May 21 13:40 x001_ameint_abc.zip
ERROR: -rw------- 0 0 0 408 May 21 13:49 x001_ameint_def.zip
ERROR: -rw------- 0 0 0 408 May 21 13:53 x001_ameint_xyz.zip
ERROR: sftp> Invalid command.^M
ERROR: sftp>
here are my tweaked regular expressions:
ssh_list() {
typeset userAtHost="$1"
typeset dir="${2-.}"
typeset wild="${3-*}"
info "SSH list: $userAtHost $dir $wild"
# Save, disable, and restore the verbose flag - any
# verbose output would look like errors.
typeset verbose="$(set -o |sed -n 's/^verbose *//p')"
set +v
typeset msgs="$(sftp $userAtHost 2>&1 <<EOF
cd $dir
ls -l
EOF)"
echo $msgs > TEXT.dat
if [ "$verbose" = on ] ;then
set -v
fi
# Strip the "Connecting to host..." line, prompts, blank lines
# and login banners. What's left should only be error messages.
typeset errs="$(echo "$msgs" |
sed -e '/^Connecting to .*\.\.\.$/d' \
# -e '/^ERROR: unable to initialize mechanism library [/usr/lib/gss/gl/mech_krb5.so]/d' \
-e '/ERROR: //g' \
-e 's/^$//g' \
-e 's/sftp> //g' \
-e '/^[ ]*$/d' \
-e '/^#/d' \
-e '/^[-dDlbcps][-rwxsStTlL]\{9\}+\{0,1\} /d')"
if [ "$errs" != "" ] ;then
error "$errs"
return 1
fi
echo "$msgs" |
while read line
do
case "$line" in -*\ $wild)
echo ${line##* }
;;esac
done
return 0
}
ssh_sendrecv() {
typeset op="$1"
typeset userAtHost="$2"
typeset src="$3"
typeset dst="$4"
info "SSH transfer: $op $userAtHost $src $dst"
#if [ "$REGION" != prod ] ;then
#userAtHost=$LOGNAME@localhost
#fi
# Save, disable, and restore the verbose flag - any
# verbose output would look like errors.
typeset verbose="$(set -o |sed -n 's/^verbose *//p')"
set +v
typeset msgs="$(sftp $userAtHost 2>&1 <<EOF
$op $src $dst
EOF)"
if [ "$verbose" = on ] ;then
set -v
fi
# Strip the "Connecting to host..." line, prompts, blank lines
# and login banners. What's left should only be error messages.
typeset errs="$(echo "$msgs" |
sed -e '/^Connecting to .*\.\.\.$/d' \
-e 's/^$//g' \
-e 's/sftp> //g' \
-e '/^[ ]*$/d' \
-e '/^#/d')"
if [ "$errs" != "" ] ;then
error "$errs"
return 1
fi
return 0
}
10 More Discussions You Might Find Interesting
1. Programming
How do I use the regular expressions in c++? (2 Replies)
Discussion started by: szzz
2 Replies
2. Shell Programming and Scripting
Hi,
can anyone advise me how to shorten this:
if || ; then
I tried but it dosent seem to work, whats the correct way.
Cheers (4 Replies)
Discussion started by: jack1981
4 Replies
3. Shell Programming and Scripting
I have following content in the file
CancelPolicyMultiLingual3=U|PC3|EN
RestaurantInfoCode1=U|restID1|1
.....
I am trying to use following matching extression
\|(+)
to get this
PC3|EN
restID1|1
Obviously it does not work.
Any ideas? (13 Replies)
Discussion started by: arushunter
13 Replies
4. UNIX for Dummies Questions & Answers
Hi Gurus,
I need help with regular expressions. I want to create a regular expression which will take only alpha-numeric characters for 7 characters long and will throw out an error if longer than that.
i tried various combinations but couldn't get it, please help me how to get it guys.
... (2 Replies)
Discussion started by: ragha81
2 Replies
5. Shell Programming and Scripting
Hello,
Let say I have a string with content "Free 100%". How can extract only "100" using ksh? I would this machanism to work if instead of "100" there is any kind of combination of numbers(ex. "32", "1238", "1"). I want to get only the digits.
I have written something like this:
... (4 Replies)
Discussion started by: whatever
4 Replies
6. UNIX for Dummies Questions & Answers
In regular expressions with grep(or egrep), ^ works if we want something in starting of line..but what if we write ^^^ or ^ for pattern matching??..Hope u all r familiar with regular expressions for pattern matching.. (1 Reply)
Discussion started by: aadi_uni
1 Replies
7. Shell Programming and Scripting
#!/usr/bin/perl
$word = "one last challenge";
if ( $word =~ /^(\w+).*\s(\w+)$/ )
{
print "$1";
print "\n";
print "$2";
}
The output shows that "$1" is with result one and "$2" is with result challenge. I am confused about how this pattern match expression works step by step. I... (8 Replies)
Discussion started by: DavidHe
8 Replies
8. Shell Programming and Scripting
I have a file that I'm trying to find all the cases of phone number extensions and deleting them. So input file looks like:
abc
x93825
def
13234
x52673
hello
output looks like:
abc
def
13234
hello
Basically delete lines that have 5 numbers following "x". I tried: x\(4) but it... (7 Replies)
Discussion started by: pxalpine
7 Replies
9. Shell Programming and Scripting
I am new to shell scripts.Can u please help me on this req.
test_user = "Arun"
if
echo "test_user is a word"
else
echo "test_user is not a word" (1 Reply)
Discussion started by: chandrababu
1 Replies
10. Shell Programming and Scripting
I need to pick a part of string lets stay started with specific character and end with specific character to replace using sed command
the line is like this:my audio book 71-skhdfon1dufgjhgf8.wav'
I want to move the characters beginning with - end before.
I have different files with random... (2 Replies)
Discussion started by: XP_2600
2 Replies