Re: Need help: perl script to FTP

From: Chris Cole (ithinkiam_at_gmail.com)
Date: 08/26/04

  • Next message: FLOTServer: "Re: Need help: perl script to FTP"
    Date: Thu, 26 Aug 2004 10:58:06 +0100
    
    

    On Thu, 26 Aug 2004 00:21:53 -0400, FLOTServer wrote:

    > Here's my problem: I run a gameserver that runs the game "Medal of Honor".
    > On the game server is log file which contains all of the data from the
    > players for that day (kills, deaths, etc...). I have a perl script that runs
    > on my webserver, which is supposed to login to the gameserver and download
    > the log. The problem is that when it gets to the part where it needs to
    > download the file, it aborts. The gameserver FTP requires I use port 24 and
    > passive mode. Here's my script:
    >
    > ====start
    > #!/usr/bin/perl

    use warnings;
    use strict;

    > ##Game server IP
    > $ftpserver = "66.36.252.88:24";
    >
    > ##Login username
    > $ftpusername = "username";
    >
    > ##Login password
    > $ftppass = "password";
    >
    > ##Logfile folder on Game Server (no trailing slash)
    > $cwdd = "/mainta";
    >
    > ##Logfile name on the gameserver
    > $logfile = "qconsole.log";
    >
    > ##Logfile name saved on the webserver
    > $logname = "qconsole.log";
    >
    > ##Local path on webserver (no trailing slash)
    > $logpath = "/public_html/mohstats/logs";
    >
    >
    >
    > ##NO NEED TO EDIT ANYTHING BELOW THIS LINE
    >
    > use Net::FTP;
    >
    > if ($ftp = Net::FTP->new("$ftpserver", Debug => 0)) { print "Logging in to
    > server\n"; } else { print "could not find server! Exiting\n";
    > &send("Transfer FAILED. Could NOT connect to $ftpserver", "Transfer
    > FAILED"); exit; }
    >
    > if ($ftp->login("$ftpusername","$ftppass")) { print "Username and Password
    > ACCEPTED\n"; } else { print "could not log into server with Username and
    > Password. Exiting!\n"; &send("Transfer FAILED. Could NOT connect to

    The &send() subroutine doesn't exist in your script. Did you copy the
    script from somewhere? Also, '&' is unecessary, send("blah...") is
    sufficient.

    > $ftpserver with the Username And Password provided - Authentication error.",
    > "Transfer FAILED"); exit; }
    >
    > if ($ftp->pasv) { print "Passive mode entered successfully\n"; } else {
    > print "Could not switch to pasive mode.\n"; }
    >
    > if ($ftp->cwd("$cwdd")) { print "Changed to the directory without any
    > trouble - DOWNLOADING\n"; } else { print "Could not change to the
    > appropriate directory, uploading anyway\n"; }
    >
    > if ($ftp->ascii) { print "Changed to ASCII Mode No Problem\n"; } else {
    > print "Could not change to ASCII mode $!\n"; exit; }
    >
    > if ($ftp->get("$logfile","$logpath/$logname")) { print "Everything appears
    > ok with the Transfer\n"; } else { print "Can not Transfer file $!\n
    > EXITING\n", $ftp->message, "\n"; &send("Transfer FAILED. Could NOT Transfer
    > from $ftpserver. Error message returned from server is: $1", "Transfer
    > FAILED"); exit; }
    >
    > $ftp->delete("$logfile");
    > $ftp->quit;
    >
    > print "File Transferred OK!\nFinished\n";
    > ====end
    >
    > Here's the error I get when the script runs:
    >
    > Undefined subroutine &main::send called at
    > /home/flot/public_html/cgi-bin/ftp.pl line 40.

    See above for problem here

    > Logging in to server
    > Username and Password ACCEPTED
    > Passive mode entered successfully
    > Changed to the directory without any trouble - DOWNLOADING

    OK up to here.

    > Can not Transfer file
    > EXITING
    > Cannot retrieve. Failed. Aborting

    Have you checked whether the file you're looking for exists? Do you have
    write permission to your local directory?
     
    > Any idea what is going wrong?


  • Next message: FLOTServer: "Re: Need help: perl script to FTP"

    Relevant Pages

    • Re: Need help: perl script to FTP
      ... > On the game server is log file which contains all of the data from the ... > on my webserver, which is supposed to login to the gameserver and download ... The &sendsubroutine doesn't exist in your script. ...
      (comp.lang.perl)
    • Re: trying to create a daemon
      ... > simple script that can login to a webserver, connect to port (whatever ...
      (perl.beginners)
    • Re: Getting status/response codes in Perl
      ... > information out to a log file. ... the said script should terminate with error, ... your webserver may allow for your application to add information ... to the webserver logfile. ...
      (comp.lang.perl.misc)
    • Re: Login Script - log files overwritten
      ... > I have a script (cmd file) is being called from the login ... > written to a log file housed on a share. ...
      (microsoft.public.win2000.networking)
    • Login Script - log files overwritten
      ... I have a script is being called from the login ... written to a log file housed on a share. ... Two users writing to the file at the same time? ...
      (microsoft.public.win2000.networking)