# $Id: pdinrs_ftp,v 1.1.1.1 2005/01/10 18:47:02 pdi Exp $ #Copyright 1998-2022 Stonie R. Cooper, Licensed under the auspices of GPLv3, # See top-level copyright disclaimer (COPYRIGHT) and license (LICENSE) #! /bin/bash for each in `/usr/bin/find /data/ftp -maxdepth 1 -mmin +45` do for next in `echo ${each} | tr '/' ' '` do temp_file=${next} done alive_ftp=`/usr/sbin/fuser /tmp/${temp_file} | awk -F: '{print $2}'` if [ -n ${alive_ftp} ] then kill -9 ${alive_ftp} fi rm -f /tmp/${temp_file} rm -f /data/ftp/${temp_file} done if [ ${#} -ne 4 ] then echo "usage:pdinrs_ftp " exit fi typeset -i boolean=`ps aux | grep " ftp " | grep -v grep | wc -l` if [ ${boolean} -gt 50 ] then echo "Have exceeded system pid resource allotment; ftp refused" exit fi for each in `echo ${3} | tr '/' ' '` do temp_file="${each}" done ftp ${1} << end_pdinrs_ftp1 > /tmp/${temp_file} binary ${2} ${3} ${4} bye end_pdinrs_ftp1 boolean1=`grep "Could not determine cwdir" /tmp/${temp_file} 2> /dev/null | wc -l` boolean2=`grep "No such file or directory" /tmp/${temp_file} 2> /dev/null | wc -l` if [ ${boolean1} -ne 0 -o ${boolean2} -ne 0 ] then boolean=1 else boolean=0 fi rm -f /tmp/${temp_file} if [ ${boolean} -ne 0 ] then typeset -i count=0 typeset -i loop=0 dir_list="" for each in `echo ${4} | tr '/' ' '` do count=${count}+1 done for each in `echo ${4} | tr '/' ' '` do loop=${loop}+1 if [ ${loop} -lt ${count} ] then dir_list="${dir_list}/${each}" ftp ${1} << end_pdinrs_ftp2 > /tmp/${temp_file} mkdir ${dir_list} bye end_pdinrs_ftp2 fi done ftp ${1} << end_pdinrs_ftp3 > /tmp/${temp_file} binary ${2} ${3} ${4} bye end_pdinrs_ftp3 fi rm -f /tmp/${temp_file}