erlug
[Top] [All Lists]

RE: [Erlug] WEBDAV

To: "'erlug@xxxxxxxxxxxxxx'" <erlug@xxxxxxxxxxxxxx>
Subject: RE: [Erlug] WEBDAV
From: Alessandro Forghieri <Alessandro.Forghieri@xxxxxxxxxx>
Date: Thu, 2 Oct 2003 17:31:32 +0200
Paolo Sinigaglia wrote:
> Salve ragazzi,
> visto che qui qualcuno ne parlava forse mi saprete aiutare:
> Ho una macchina (woody) che deve inviare periodicamente un file a un
> altra macchina sulla quale c'e un server webdav (qualunque cosa sia).
> Mi hanno dato un url, uno username e una password.
> 
> Cosa devo fare?

prima leggi: 
http://www.webdav.org/perldav/HTTP-DAV.html
come suggerisce dario.
Poi:

$perl -MCPAN -e shell
CPAN> install HTTP::Dav
CPAN> exit

E fai qualcosa tipo (codice non provato, forse non compila neanche):

#! /usr/bin/perl
use HTTP::DAV;
use strict;
use warings;

sub doIt {
  my ($url,$locktime)=(@_);
  my $d= new HTTP::DAV;
  my $status=undef;
  $d->credentials( 
                  -user=>"pcollins",
                  -pass =>"mypass", 
                  -url =>$url,
                  -realm=>"DAV Realm" );
  $d->open( -url=>$url )
    or die("Couldn't open $url: " .$d->message . "\n");
  # Make a null lock 
  $d->lock( -url => $url, -timeout => $locktime ) 
    or die "Won't put unless I can lock for $locktime\n";
  # Upload file to mydir.
  if ( $d->put( -local => "/tmp/foo.html", -url => $url ) ) {
    $status=1;
  } else {
    $d->unlock( -url => $url );
    die "put failed: " . $d->message . "\n";
  }
  $status;
}
#
# main
#
my $url = "http://host.org:8080/dav/upload";;
my $naptime=3600;  # 1 hour
my $locktime="5m"; # 5 minutes
do {
  eval {
    doIt($url);
  };
  if ($@) {
    print STDERR "Failed to upload: ", $@,"\n";
  }
  sleep($naptime);
} while (1);

oppure togli il loop e mettilo in cron.

Cheers,
alf

<Prev in Thread] Current Thread [Next in Thread>