home *** CD-ROM | disk | FTP | other *** search
/ ftp.ncftp.com / ftp.ncftp.com.zip / ftp.ncftp.com / ncftpd / end_of_life / ncftpd-2.8.7-linux-x86-glibc2.1-export.tar.gz / ncftpd-2.8.7-linux-x86-glibc2.1-export.tar / ncftpd-2.8.7 / extra / process_ncftpd_event.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  2011-01-17  |  3KB  |  91 lines

  1. #!/bin/sh
  2.  
  3. #-----------------------------------------------------------------------------
  4. # Sample shell script to show to process a NcFTPd event real-time
  5. #-----------------------------------------------------------------------------
  6.  
  7. # Sample input:
  8. #   LOGIN anonymous  a@localhost dflt localhost
  9. #   DOWNLOAD anonymous  a@localhost dflt localhost /home/ftp/pub/stuff 14259 0.004 3132.689  OK 
  10.  
  11. #-----------------------------------------------------------------------------
  12. # functions
  13. #-----------------------------------------------------------------------------
  14.  
  15. Upload () {
  16.     echo "$f_pathname was uploaded; finishing status was $f_xferstatus." >> /tmp/ncftp.events.out
  17. }    # Upload
  18.  
  19.  
  20. Download () {
  21.     echo "$f_pathname was downloaded; finishing status was $f_xferstatus." >> /tmp/ncftp.events.out
  22. }    # Download
  23.  
  24.  
  25. Login () {
  26.     echo "$f_user@$f_rhost logged into $f_setname." >> /tmp/ncftp.events.out
  27. }    # Login
  28.  
  29.  
  30. Logout () {
  31.     echo "$f_user@$f_rhost logged out of $f_setname." >> /tmp/ncftp.events.out
  32. }    # Login
  33.  
  34. #-----------------------------------------------------------------------------
  35. # main 
  36. #-----------------------------------------------------------------------------
  37.  
  38. ## i=0
  39. ## args=""
  40. ## for arg in "$@"
  41. ## do
  42. ##     i=`expr $i + 1`
  43. ##     args="$args $i=[$arg]"
  44. ## done
  45. ## echo "$args" >> /tmp/ncftp.events.out
  46.  
  47. f_event="$1"                    # event type
  48. f_user="$2"                    # login name
  49. f_restr="$3"                    # restricted user type
  50. f_email="$4"                    # email address, if anonymous user
  51. f_setname="$5"                    # virtual domain set-name
  52. f_rhost="$6"                    # remote host
  53.  
  54. case "$f_event" in
  55.     UPLOAD)
  56.         f_pathname="$7"            # file pathname
  57.         f_xferamt="$8"            # amount transferred
  58.         f_xferdur="$9"            # transfer duration
  59.         f_xferrate="${10}"        # kB/sec
  60.         f_xfersfx="${11}"        # on-the-fly processing, if any (i.e. .tar, .tar.gz)
  61.         f_xferstatus="${12}"        # transfer finishing status
  62.         Upload
  63.         ;;
  64.  
  65.     DOWNLOAD)
  66.         f_pathname="$7"            # file pathname
  67.         f_xferamt="$8"            # amount transferred
  68.         f_xferdur="$9"            # transfer duration
  69.         f_xferrate="${10}"        # kB/sec
  70.         f_xfersfx="${11}"        # on-the-fly processing, if any (i.e. .tar, .tar.gz)
  71.         f_xferstatus="${12}"        # transfer finishing status
  72.         Download
  73.         ;;
  74.  
  75.     LOGIN)
  76.         # (no additional fields)
  77.         Login
  78.         ;;
  79.  
  80.     LOGOUT)
  81.         f_sessdur="$7"            # session duration, in seconds
  82.         f_avgcmdwait="$8"        # average time between commands
  83.         f_totaldl="$9"            # total bytes downloaded
  84.         f_totalul="${10}"        # total bytes uploaded
  85.         f_totalcmds="${11}"        # total number of FTP commands issued
  86.         f_totaldlcmds="${12}"        # total number of downloads attempted
  87.         f_totalulcmds="${13}"        # total number of uploads attempted
  88.         Logout
  89.         ;;
  90. esac
  91.