mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-30 10:22:34 +00:00 
			
		
		
		
	 72712ff548
			
		
	
	72712ff548
	
	
	
		
			
			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
 | |
| ##
 |