mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-10-29 18:02:35 +00:00
Add scripts from the tools directory in the private Candela repo.
These scripts will now be publicly available in a git repo for easier shared development and change tracking.
This commit is contained in:
105
ftp-upload.pl
Executable file
105
ftp-upload.pl
Executable file
@@ -0,0 +1,105 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
## ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
|
||||
##
|
||||
## Use this script to collect and upload station data
|
||||
## to an FTP host.
|
||||
##
|
||||
## ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
|
||||
use strict;
|
||||
use warnings;
|
||||
use Carp;
|
||||
use Getopt::Long;
|
||||
use Socket;
|
||||
use Cwd;
|
||||
use Net::FTP;
|
||||
$SIG{ __DIE__ } = sub { Carp::confess( @_ ) };
|
||||
$| = 1;
|
||||
|
||||
## ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
|
||||
our $def_user = 'anonymous';
|
||||
our $def_pass = 'anonymous';
|
||||
our $def_srcdir = Cwd::getcwd();
|
||||
our $def_destdir = '/WIN7_LanForge_Data/';
|
||||
our $def_ftphost = "192.168.1.222";
|
||||
our @file_list = ();
|
||||
our $verbose = 0;
|
||||
our $debug = 0;
|
||||
our $username = $def_user;
|
||||
our $password = $def_pass;
|
||||
our $ftp_host = $def_ftphost;
|
||||
our $srcdir = $def_srcdir;
|
||||
our $destdir = $def_destdir;
|
||||
## ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
|
||||
our $usage = "\n$0:
|
||||
--user username [$def_user]
|
||||
--passwd password [$def_pass]
|
||||
--srcdir sourcedir [$def_srcdir]
|
||||
--host host [$def_ftphost]
|
||||
--destdir destdir [$def_destdir]
|
||||
--verbose=1 [$verbose]
|
||||
--debug=1 [$debug]
|
||||
-- file1 file2 ... fileN # use -- to start a list of files or globs on cmdline
|
||||
";
|
||||
|
||||
GetOptions (
|
||||
'user|u=s' => \$::username,
|
||||
'passwd|p=s' => \$::password,
|
||||
'host|h=s' => \$::ftp_host,
|
||||
'srcdir|s=s' => \$::srcdir,
|
||||
'destdir|t=s' => \$::destdir,
|
||||
'verbose|v=n' => \$::verbose,
|
||||
'debug|d=n' => \$::debug
|
||||
) || die($usage);
|
||||
|
||||
die "Cannot open $srcdir " if ( ! -e $srcdir );
|
||||
|
||||
if (@ARGV > 0) {
|
||||
# we were passed -- file1 file2 ... fileN on commandline
|
||||
print "Checking files listed on command line...\n" if ($verbose);
|
||||
for my $filename (@ARGV) {
|
||||
if ($filename =~ /(\*|\?|\{\n)/) {
|
||||
my @expanded = glob("$srcdir/$filename");
|
||||
for my $filename2 (@expanded) {
|
||||
if ( -e $filename2 ) {
|
||||
push(@file_list, $filename2);
|
||||
}
|
||||
else {
|
||||
print STDERR "File $filename2 not found\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ( -e "$srcdir/$filename" ) {
|
||||
push(@file_list, "$srcdir/$filename");
|
||||
}
|
||||
else {
|
||||
print STDERR "File $srcdir/$filename not found\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
# we were just given a directory
|
||||
print "Looking for 'sta*.csv' files in $srcdir...\n" if ($verbose);
|
||||
@file_list = glob("$srcdir/sta*.csv");
|
||||
}
|
||||
|
||||
die "No CSV files present in $srcdir" if (@file_list < 1);
|
||||
my $ftp_server = Net::FTP->new($ftp_host,
|
||||
Debug=>$debug,
|
||||
Timeout=>15,
|
||||
Port=>21,
|
||||
Passive=>0)
|
||||
or die "Can't open $ftp_host\n";
|
||||
|
||||
$ftp_server->login($username, $password) or die "Can't log $username in\n";
|
||||
$ftp_server->cwd($destdir) or die "Unable to cd to $destdir\n";
|
||||
|
||||
for my $filename (@file_list) {
|
||||
print "uploading $filename\n" if ($verbose);
|
||||
$ftp_server->put($filename) or die "Unable to upload $filename\n";
|
||||
}
|
||||
##
|
||||
## eof
|
||||
##
|
||||
Reference in New Issue
Block a user