Sponsored Content
Full Discussion: IF ELSE in EXPECT script
Top Forums Shell Programming and Scripting IF ELSE in EXPECT script Post 303040241 by TheMegaSage on Friday 25th of October 2019 09:20:19 AM
Old 10-25-2019
IF ELSE in EXPECT script

I have an Expect script I've re-purposed from another process, and I would like to add in an IF THEN ELSE condition. I would greatly appreciate some help with the syntax.

The purpose of the script is to send a file to an FTP site. It works as it is right now (as in, the script actually does FTP the file over), it's just that occasionally the FTP site will reject my connection. It's totally intermittent, and I'm working with the company to get them to fix their damn FTP site ... but you know how it is. It MUST be something on my end. Smilie

Anyway, my goal is to get them to fix their FTP site or to migrate me to another one, but in the interim, and because it's good coding anyway, I'd like to add an IF ELSE THEN to my script. IF the FTP site returns a "Connection Refused", THEN try again, ELSE use my current code. Basically I'd like to keep trying until it works or fails 5 times kinda thing.

**CURRENT SCRIPT THAT WORKS TO SEND THE FILE (unless there is a connection error):**
Code:
    HOST=$1  
    USER=$2  
    PASSWD=$3  
    FILE=$4  

    #lftp<<END_SCRIPT  
    #open sftp://$HOST  
    #user $USER $PASSWD  
    #put $FILE  
    #bye  
    #END_SCRIPT  

    expect -c "  
    spawn sftp ${USER}@${HOST}  
    expect \"password:\"  
    send \"${PASSWD}\r\"  
    expect \"sftp>\"  
    send \"cd /import/nonCC/data\r\"  
    expect \"sftp>\"  
    send \"put ${FILE}\r\"  
    expect \"sftp>\"  
    send \"exit\n\"  
    interact "

Here is the error I get if the connection is refused ...
Code:
    spawn sftp xxx@pretendftp.site
    Connecting to pretendftp.site...
    ssh: connect to host pretendftp.site port 22: Connection refused

    Couldn't read packet: Connection reset by peer

    send: spawn id exp3 not open
        while executing
    "send "pretendpassword\r""

And out of interest, the message I get when the transfer is successful ...
Code:
    spawn sftp xxx@pretendftp.site.
    Connecting to pretendftp.site....
    xxx@pretendftp.site.'s password: 
    sftp> cd /import/nonCC/data
    sftp> put <PeopleSoft directory here>/division__20191025.txt
    Uploading <PeopleSoft directory here>/division__20191025.txt to /import/nonCC/data/division__20191025.txt

    <PeopleSoft directory here>/log_ou   0%    0     0.0KB/s   --:-- ETA
    <PeopleSoft directory here>/log_ou 100%   11KB  11.2KB/s   00:00

Anyway, I would greatly appreciate help with the script to capture the connection refused error in order to try again.

Last edited by vbe; 10-25-2019 at 02:13 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

strange expect script behavior, or am i misunderstanding expect scripting?

Hello to all...this is my first post (so please go easy). :) I feel pretty solid at expect scripting, but I'm running into an issue that I'm not able to wrap my head around. I wrote a script that is a little advanced for logging into a remote Linux machine and changing text in a file using sed.... (2 Replies)
Discussion started by: v1k0d3n
2 Replies

2. Shell Programming and Scripting

Need help with Expect script for Cisco IPS Sensors, Expect sleep and quoting

This Expect script provides expect with a list of IP addresses to Cisco IPS sensors and commands to configure Cisco IPS sensors. The user, password, IP addresses, prompt regex, etc. have been anonymized. In general this script will log into the sensors and send commands successfully but there are... (1 Reply)
Discussion started by: genewolfe
1 Replies

3. Programming

Expect script to run a Shell script on remote server

Hi All, I am using a expect script to run a shell script on remote server, the code is as follows. But the problem is that it executes only first command, and hangs it doesn't run the next commands. spawn ssh $uid@$host expect "password:" send "$password\r" expect "*\r" send... (2 Replies)
Discussion started by: yashwanthsn
2 Replies

4. Shell Programming and Scripting

Expect script help needed- script failing if router unavailable

Hey all. Sometimes I'm tasked to change some router configs for the entire network (over 3,000 Cisco routers). Most of the time its a global config parameter so its done with a loop and an IP list as its the same configuration change for all routers. This is working OK. However, sometimes an... (3 Replies)
Discussion started by: mrkz1974
3 Replies

5. Shell Programming and Scripting

Expect script to execute a script on a remote host

Hi, I am new to the expect scripting. I have this expect script as below : spawn ssh remote_server -l id set pass "12345" set opt "s" expect "Password:" {send "$pass\r" ; } expect "*ENTER*" {send "Enter\r"; exp_continue } expect "Please select option :" {send... (2 Replies)
Discussion started by: curt137
2 Replies

6. Programming

Calling expect script inside another expect

Hi, Am very new to expect scripting.. Can You please suggest me how to call an expect script inside another expect script.. I tried with spawn /usr/bin/ksh send "expect main.exp\r" expect $root_prompt and spawn /usr/bin/ksh send "main.exp\r" expect $root_prompt Both... (1 Reply)
Discussion started by: Priya Amaresh
1 Replies

7. UNIX for Advanced & Expert Users

Unable to run the script on remote machine Using Expect script

Not able to execute the file in remote host using except utility I am automating the SFTP keys setp process: So i created the expect script for controlling the output of shell below is my main code: Code: #!/usr/bin/expect set fd set password close $fd set df set app close $df... (1 Reply)
Discussion started by: Manoj Bajpai
1 Replies

8. Programming

Calling another expect script inside an expect script

I have an expect script called remote that I want to call from inside my expect script called sudoers.push, here is the code that is causing me issues: set REMOTE "/root/scripts/remote" ... log_user 1 send_user "Executing remote script as $user...\n" send_user "Command to execute is: $REMOTE... (1 Reply)
Discussion started by: brettski
1 Replies

9. Shell Programming and Scripting

SFTP or scp with password in a batch script without using SSH keys and expect script

Dear All, I have a requirement where I have to SFTP or SCP a file in a batch script. Unfortunately, the destination server setup is such that it doesn't allow for shell command line login. So, I am not able to set up SSH keys. My source server is having issues with Expect. So, unable to use... (5 Replies)
Discussion started by: ss112233
5 Replies

10. Programming

Expect script returning string following a found expect.

I'm fairly new to scripting so this might not be possible. I am using Expect with Cisco switches and need to capture the string after finding the expect request. For example, when I issue "show version" on a Nexus switch, I'm looking to capture the current firmware version: #show version ... (0 Replies)
Discussion started by: IBGaryA
0 Replies
filezilla(1)							 FileZilla Manual						      filezilla(1)

NAME
FileZilla - FTP client SYNOPSIS
filezilla filezilla [-l <logontype>] <FTP URL> filezilla -h|-s|-v filezilla -c <site> DESCRIPTION
FileZilla is a powerful client for plain FTP, FTP over SSL/TLS (FTPS) and the SSH File Transfer Protocol (SFTP). OPTIONS
-c <site>, --site <site> Connect to the given site from the Site Manager. Site has to be given as complete path, with a slash as separation character. Any slash or backslash that is part of a segment has to be escaped with a backslash. Path has to be prefixed with 0 for user defined entries or 1 for default entries. Site path may not contain double quotation marks. Example: filezilla -c 0/foo/bar/sl/ash connects to the user site sl/ash in the site directory foo/bar May not be used together with -s nor with URL parameter. -h, --help Displays a help dialog listing these commandline options. -l <logontype>, --logontype <logontype> Set a special logontype, can only be used in combination with a FTP URL as argument. Logontype has to be either ask or interactive. If -l isn't given, the normal logontype is used. -s, --sitemanager Start with Site Manager opened. May not be used together with -c nor with URL parameter. -v, --version Display version number of FileZilla. ENVIRONMENT
The FZ_DATADIR environment variable can be used to specify the directory containing FileZilla's data files. SUPPORT
Please visit http://filezilla-project.org/ for further information. Report bugs only if you are using the latest version available from the FileZilla website. COPYRIGHT
Copyright (C) 2004-2010 Tim Kosse FileZilla is distributed under the terms of the GNU General Public License version 2 or later. SEE ALSO
fzdefaults.xml(5) April 2008 filezilla(1)
All times are GMT -4. The time now is 12:45 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy