mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-10-28 17:32:35 +00:00
These scripts will now be publicly available in a git repo for easier shared development and change tracking.
106 lines
3.1 KiB
Perl
Executable File
106 lines
3.1 KiB
Perl
Executable File
#!/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
|
|
##
|