SCDNG PELER
Server IP : 162.241.126.129  /  Your IP : 3.139.86.74
Web Server : Apache
System : Linux 162-241-126-129.cprapid.com 4.18.0-477.27.2.el8_8.x86_64 #1 SMP Fri Sep 29 08:21:01 EDT 2023 x86_64
User : rvway5nu4 ( 1018)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /scripts/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /scripts/ftpfetch
#!/usr/local/cpanel/3rdparty/bin/perl

use Net::FTP;

my (%ARGS) = parseargv();

if ( $ARGS{user} eq "" ) {
    die "Sorry, you must specify a user to login to the remote server as.";
}
if ( $ARGS{host} eq "" ) {
    die "Sorry, you must specify a remote server.";
}
if ( $ARGS{srcfile} eq "" ) {
    die "Sorry you must specify a source file.\n";
}
if ( $ARGS{destfile} eq "" ) {
    die "Sorry you must specify a destfile file.\n";
}
if ( $ARGS{port} eq "22" ) {
    print "Assuming port 21 since 22 was specified!\n";
    $ARGS{port} = 21;
}

my $pass = <STDIN>;
chomp($pass);

if ( my $pid = fork() ) {
    while ( waitpid( $pid, 1 ) != -1 ) {
        print ".\n";
        sleep(1);
    }
}
else {
    my $ftp;
    if ( $ARGS{'port'} ne "" ) {
        $ftp = Net::FTP->new( $ARGS{host}, Debug => 1, Passive => 1, Port => $ARGS{'port'} )
          || die "Cannot connect to $ARGS{host}:$ARGS{port} $@";
    }
    else {
        $ftp = Net::FTP->new( $ARGS{host}, Debug => 1, Passive => 1 )
          || die "Cannot connect to $ARGS{host}:21:  $@";
    }
    $ftp->login( $ARGS{user}, $pass ) || die "Cannot login ", $ftp->message;
    my (@FINFO) = split( /\//, $ARGS{srcfile} );
    my $file;
    my $dir;
    if ( $ARGS{srcfile} =~ /^\// ) {
        shift(@FINFO);    #/
        shift(@FINFO);    #home
        shift(@FINFO);    #user
    }
    $file = pop(@FINFO);
    $dir  = join( "/", @FINFO );
    $ftp->cwd($dir) || die "Cannot change working directory ", $ftp->message;

    my (@DEST)   = split( /\//, $ARGS{destfile} );
    my $destfile = pop(@DEST);
    my $destdir  = join( "/", @DEST );
    if ( $destdir ne "" ) {
        chdir($destdir);
    }
    if ( $destfile ne '.' ) {
        $ftp->get( $file, $destfile ) || die "get failed ", $ftp->message;
    }
    else {
        $ftp->get($file) || die "get failed ", $ftp->message;
    }
    $ftp->quit();
    exit();
}

sub parseargv {
    my (%ARGS);
    while ( $#ARGV != -1 ) {
        $_ = $ARGV[0];
        if (/^\-\-/) {
            my $arg = shift(@ARGV);
            $arg =~ s/^\-\-//g;
            $arg =~ tr/[A-Z]/[a-z]/;
            my $value = shift(@ARGV);
            $ARGS{$arg} = $value;
        }
        else {
            last;
        }
    }
    return (%ARGS);
}

Anon7 - 2022
SCDN GOK