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
|