mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-11-03 04:07:52 +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
 | 
						|
##
 |