Trigger the execution of a script on SFTP Disconnect


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Trigger the execution of a script on SFTP Disconnect
# 8  
Old 04-22-2016
@RudiC

Excellent. I've just tested ps -aux when the client is connected/disconnected and as you say, the process appears and disappears. The next question is how can I trigger a script off of that? The watch command is ringing bells but the documentation suggests it won't do what I think.

Thanks
James

Last edited by rbatte1; 09-30-2016 at 05:07 AM..
# 9  
Old 04-22-2016
If the /proc file system is available, this might work (with 11266 the PID of sftp):
Code:
ls -d /proc/11266

or
Code:
watch -g pgrep sftp


Last edited by RudiC; 04-22-2016 at 12:19 PM..
# 10  
Old 04-22-2016
@ RudiC

Thanks - I'll give this a try.
# 11  
Old 04-22-2016
What happens with Rudi's solution if there are concurrent transmissions or a transmit failure?
# 12  
Old 04-23-2016
Good points. But - that wasn't meant as a solution but as a direction to think into. Unfortunately, unlike ftp, sftpis a handled as a subsystem of the sshd daemon. I'm not sure if it could be modified (e.g. replaced by a wrapper script) to detect/handle connects and disconnects.
# 13  
Old 04-23-2016
I have used variations of this code for over 10 years.

Code:
put abcdefgh.ltr /u2/email/temp
put abcdefgh.mmo /u2/email/temp
put abcdefgh.job /u2/email/requests

Code:
#!/bin/ksh                                                                
BATCH=$1                                                                  
proc=$$                                                                   
if [ -r /u2/email/$BATCH.pid ]                                            
then                                                                      
        echo Previous job still running `cat /u2/email/$BATCH.pid`        
        exit                                                              
fi                                                                        
echo $proc >/u2/email/$BATCH.pid                                          
echo  $proc `date +"%Y%m%d %H%M%S"` >/u2/email/$BATCH.pidhistory          
cd /u2/email                                                              
list=`ls requests|grep $BATCH`                                            
if [ "$list" != "" ]                                                      
        then                                                              
        for request in $list                                              
        do                                                                
        echo $request `date`                                              
        IFS="~"                                                           
        cat requests/$request | read  user email subject memo attachments 
        IFS=" "                                                           
        cd /u2/email/temp                                                 
        #do all the processing here                                       
        cd /u2/email                                                      
        mv /u2/email/temp/$req* done                                      
        mv /u2/email/requests/$request done                               
        if [ ! -r /u2/email/$BATCH.pid ]                                  
        then                                                              
                echo Job terminated manually `cat /u2/email/$BATCH.pid`   
                exit                                                      
        fi                                                                
        done                                                              
fi                                                                        
rm /u2/email/$BATCH.pid

We use 8.3 file names.
The file name extension for files in the request directory is used to create different queues: job for regular processing, ovn for overnight, rsh for rush. There is a separate cron job for each extension.
The process can be stopped by manually removing the pid file.
If a previous pid file exists, this does not necessarily mean that the previous invocation failed. It could be that there were more jobs to process than could be processed in the interval between invocations.
# 14  
Old 04-25-2016
Thank you both for your input. I'll check out the info you've supplied.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Trigger script based on condition

Hi Guys, I am having below code which runs based on condition, Is it possible to check condition at the time of trigger code=$1 if ;then nohup sh script.sh $val 1 & fi I need to trigger if the $code = JP then only to trigger nohup sh script.sh $val 1 & My try but wanted... (4 Replies)
Discussion started by: Master_Mind
4 Replies

2. Shell Programming and Scripting

To trigger script on particular instance

Hi Guys, I have a main_script.sh which runs every day and scheduled in crontab. in the main script i read data from config file test.config apple mango orange main_script.sh for i in `cat test.config` do if then echo 'Apple' (3 Replies)
Discussion started by: Master_Mind
3 Replies

3. Shell Programming and Scripting

Automatic script trigger

Hi, I'm looking for a way to solve the following scenario: A shell should automatically trigger / run when a text file is placed or present at a specific location. My idea - to create a cron / anacron for every minute and inside that i will call a temp script. Temp script will move to my... (9 Replies)
Discussion started by: Gautham
9 Replies

4. Shell Programming and Scripting

Connect once db disconnect after all execution

Hi All, Please see the below code. it is working fine when in 'test_file' have only one emplid. test_file contains only emplid and date, like below ... 0000221|1/12/2003 0000223|1/1/1996 Problem :- when test_file contains more then one records(emplids) it is not giving any errors... (3 Replies)
Discussion started by: krupasindhu18
3 Replies

5. UNIX for Dummies Questions & Answers

How to disconnect telnet prompt with port no in script.

Hi Gurus, I am trying to write a script for checking the status of linux servers by connecting via telnet with port no but to terminate i have to manually type "quit" .how can i terminate the telnet session in script itself.For E.g ========================================= telnet ipaddress... (3 Replies)
Discussion started by: kapil514
3 Replies

6. UNIX for Dummies Questions & Answers

Trigger execution of commands whenever number of file descriptors changes

Hi, I am a Unix Newbie :D. I want to write a program such a way that: Whenever number of filedescriptors opened by a process change, it should execute some commands (eg: write total number of FDs at that point of time to a file). I dont want to poll '/proc/<pid>/fd' at regular intervals... (3 Replies)
Discussion started by: poweruser
3 Replies

7. Shell Programming and Scripting

vpn connect/disconnect shell script

Hi I am not so good in scripting..trying ot learn it...need guidance of the experts in shell scripting.. Let me explain the scenario first.. a server MX1 is connected to another server MX2 through vpn..every 5 minute a script runs to test vpn connectivity between the 2 servers.when the vpn... (12 Replies)
Discussion started by: renuka
12 Replies

8. UNIX for Dummies Questions & Answers

Can we trigger an shell script on an event

Hi, My program A updates a log called logA. I have a shell script S that is responsible to send emails reading from the log. I want to trigger execution of the script whenever there is an update to the log. Thanks in advance. (8 Replies)
Discussion started by: cv_pan
8 Replies

9. Shell Programming and Scripting

Check if trigger Script is running

HI, I have a script which will be running all the time...it is like a trigger.. wakesup every 10 minutes(trigger.sh) executes, and I want to write another script which monitors this script every one hour and if it finds that trigger script is not running it should start it and exit...and here... (9 Replies)
Discussion started by: mgirinath
9 Replies

10. Shell Programming and Scripting

Shell script call from a DB trigger

Has anybody been able to execute a shell script call from a database trigger? If so what are the steps to execute it? Do we have any specific packages in Oracle? Reards, Rahul. (1 Reply)
Discussion started by: rahulrathod
1 Replies
Login or Register to Ask a Question