Sponsored Content
Top Forums Shell Programming and Scripting bash script - sftpbatchfile - stop on failure Post 302619903 by Kerberos on Friday 6th of April 2012 10:21:29 AM
Old 04-06-2012
ok guys,
thanks a lot for the help. The 2nd part of my scriptseries is finished. (couldnt have done it without the help)

here is the final result ;-)

Code:
#!/bin/bash
## created by: Tommy Dekoster
## on: 15/03/2012
## Purpose: This script will be used om SFTP server via autosys to put files from acces & transit (.edi files)on the VAN server
## exit codes
## exit 6: the sftp connection to VAN server failed
echo "Definition of different exit codes"
echo "=================================="
echo "exit 6 = sftp connection to the VAN server failed"
echo

## variables
## vanuser: username used to connect to the VAN server from the SFTP server
## vanserver: Ip adress or hostname of the VAN server
## tbtsftp: to be treated folder on SFTP (files to be sent from sftp to VAN)
## remotepath_VAN: Directory on the VAN server where files need to be put
## commandlist: List of commands that will be executed over SFTP connection between SFTP1 and VAN server
## SFTPCHECK_PUT_RM: file where the last executed command from the commandlist will be
vanuser=$1
vanserver=$2
tbtsftp=$3
remotepath_VAN=$4
commandlist=$5
SFTPCHECK_PUT_RM=$6
filetype=$7
echo "Definition of different variables"
echo "================================="
echo "vanuser: username used to connect to the VAN server from the SFTP server"
echo "vanserver: Ip adress or hostname of the VAN server"
echo "tbtsftp: to be treated folder on SFTP (files to be sent from sftp to VAN)"
echo "remotepath_VAN: Directory on the VAN server where files need to be put"
echo "commandlist: List of commands that will be executed over SFTP connection between SFTP1 and VAN server"
echo "SFTPCHECK_PUT_RM: file where the last executed command from the commandlist will be"
echo "filetype: the type of files wich need to be moved/sftp'd"
echo
echo "Values of variables"
echo "==================="
echo "vanuser: "$vanuser
echo "vanserver: "$vanserver
echo "tbtsftp: "$tbtpath
echo "remotepath_VAN: "$remotepath_VAN
echo "commandlist: "$commandlist
echo "SFTPCHECK_PUT_RM: "$SFTPCHECK_PUT_RM
echo "filetype: "$filetype
echo
echo

## The actual procedure starts here
## Invalid files will be moved to a directory
## The old commandlist and sftp_put_rm checklist will be cleaned
## A commandlist containing put, rm, check on rm error will be created
## The generated commandlist will be executed over sftp
echo "Start of actual procedure"
echo "========================="
echo "Searching files other then ."$filetype" in "$tbtsftp" and move them to /tmp/invalid_filetype"
mkdir -p /tmp/invalid_filetype
find $tbtsftp -type f -not -name "*."$filetype -exec mv {} /tmp/invalid_filetype/ \;
echo
echo
echo "Deleting old commandlist if exists"
echo > $commandlist
echo
echo "Deleting old checkfile"
echo > $SFTPCHECK_PUT_RM
echo
echo "Creating commandlist"
echo
for FILE in `ls -tr $tbtsftp`
        do
                echo "put "$FILE
                echo "cd "$remotepath_VAN >> $commandlist
                echo "put "$FILE >> $commandlist
                echo "!rm -f "$FILE
                echo '!'"rm -f \"$FILE\" || \$? >> \"$SFTPCHECK_PUT_RM\"" >> $commandlist
        done
echo
echo "Executing commandlist over sftp"
echo
sftpconnect=$vanuser@$vanserver
cd $tbtsftp
sftp -b $commandlist $sftpconnect 2>&1
## Build in retry if initial connection doesnt work
        if [ $? != '0' ]; then
                echo First sftp connection failed, trying again.
                sftp -b $commandlist $sftpconnect 2>&1
                if [ $? != '0' ]; then
                        echo There is a problem connecting to the VAN server
                        echo Preforming ping
                        ping $vanserver -c 1
                        exit 6
                fi
        fi

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script does not stop when doing a read

Hi Folks, I have been trying to create a script wherein after it reads a certain number of data, it will pause and ask the user if he wants to continue or not. However, it seems that when it is supposed to read the user's answer, the script will go into a loop. What is wrong with my script here?... (7 Replies)
Discussion started by: rooseter
7 Replies

2. UNIX for Dummies Questions & Answers

Stop a shell script

Hi, I am writing a bash shell script. How can I tell it to stop. For example, I would like to have something similar to the following: mike=1 if ; then STOP THE SCRIPT fi (3 Replies)
Discussion started by: msb65
3 Replies

3. Shell Programming and Scripting

script don't stop

Hello everybody! I am new to this and I am trying to change a script in an open source program that plots some offset vectors and then calls a postscript viewer. I have commented away the call for the postscript viewer but somehow the script doesn't return to the shell prompt. I cant figure out... (3 Replies)
Discussion started by: larne
3 Replies

4. UNIX for Dummies Questions & Answers

Anyone know?: How the 'for'-loop could stop working in interactive bash shell?!

It is happening with my sessions already second time: a 'for'-loop for some reason stop to work as expected. That means or it is looping without exitting, or it is not loop even once. Here example of my try when it is not processing even one loop. You can see, I start new subshell and... (14 Replies)
Discussion started by: alex_5161
14 Replies

5. Shell Programming and Scripting

How to stop a script running in remote server from local script

Hi, I have googled for quite some time and couldn't able to get what exactly I am looking for.. My query is "how to stop a shell script which is running inside a remote server, using a script"??? can any one give some suggestions to sort this out. (1 Reply)
Discussion started by: mannepalli
1 Replies

6. Shell Programming and Scripting

Stop child script by stoping parent script

Hi everyone, I have this problem with a script I'm writting. I want to execute a code running in the background several times through a script. I am writting it like that parent_script for a in 1 2 3 4 5 do exec test -n $a done What I want to do is when parent_script is killed,... (0 Replies)
Discussion started by: geovas
0 Replies

7. UNIX for Dummies Questions & Answers

boot up failure unix sco after power failure

hi power went out. next day unix sco wont boot up error code 303. any help appreciated as we are clueless. (11 Replies)
Discussion started by: fredthayer
11 Replies

8. Debian

Bash script to STOP installation 'if' a file exists...

Hey all, Here's my dilemma: 1. I'm a newbie at scripting! 2. I need to create a script that checks: If a file size is equal to zero, then stop the installation. Is there a way to do this or am I wasting my time??? Thanx in advance! :b: (2 Replies)
Discussion started by: thazsar
2 Replies

9. Shell Programming and Scripting

Bash variable assignment failure/unary operator expected

I have a little code block (executing on AIX 7.1) that I cannot understand why the NOTFREE=0 does not appear to be assigned even though it goes through that block. This causes a unary operator issue. #!/bin/bash PLATFORM="AIX" NEEDSPC=3000 set -x if ; then lsvg | grep -v rootvg | while... (6 Replies)
Discussion started by: port43
6 Replies

10. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies
All times are GMT -4. The time now is 04:47 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy