Why doing just the half? Sync all servers in (one shoot)
with an app like fmirror, rsync, ... that will only download the files that have
been changed and/or removed old file no more present on the master. We
have a perl script that build dynamic webpage.. once the web page has been
created, we post it using a form/data and send it to php3 receiver it work like
a charm!.
ex: Perl part (sorry comments are in french) You need the perl
net modules.
#!/usr/bin/perl
#Example
d'appel. post_php("http:\/\/www.compagnie.com\/getpost.php3",
"\/root\/salon.html", "www.compagnie.com",
"/salon.html");
sub post_php { # post_php 07042000 Emmanuel Pare
<emman@xxxxxxxxxx> # # Cette
fonction permet de POSTER un fichier vers un autre serveur. # @PARAM
# URL_ -> String du URL qui va recevoir le POST. # ReadFilename_ ->
String contenant le repertoire et le nom du fichier a envoyer. # WEB_ ->
String qui identifie le site ex: www.compagnie.com # RemotePage_ ->
String qui identifie le nom + path relatif de la page HTML sur le cote
client.(VOIR NOTE) # NOTE : Le path relatif est ce que l'utilisateur
voit dans le browser ex www.compagnie.com/photo/ # le
path relatif dans ce cas ci est /photo et le WEB_ est www.compagnie.com # # ex:
post_php("http:\/\/www.compagnie.com\/getpost.php3", "\/root/salon.html", "www.compagnie.com",
"/salon.html");
$IDKey =
"blah"; $URL =
$_[0]; $myFile = $_[1]; $WEB
= $_[2]; $RemotePage =
$_[3];
#Ouvre le fichier en lecture et le stock sont contenu dans
$out. open(IN,"$myFile") || print "Impossible d'ouvrir le
fichier!";
while($line = <IN>) { $out = $out .
$line; }
use HTTP::Request::Common; use LWP::UserAgent; $ua =
new LWP::UserAgent; $ua->agent("Sync_Server/0.1 " .
$ua->agent); $ua->timeout(5);
my $req = POST
$URL, Content_Type =>
'form-data', Content =>
[OutFileName => $RemotePage,
OutWeb => $WEB,
userfile => $out,
Key => $IDKey]; print
$ua->request($req)->as_string;
}
PHP3 PART
-----------------
<HTML> <BODY>
<?
/* Code serveur qui recoit le POST des scripts
perls Emmanuel Pare <emman@xxxxxxxxxx>
07/04/2000 */
/* Variables : OutWeb => le nom du site web ex:
www.compagnie.com
OutFileName ==> le nom du fichier html + son path relatif ex:
/membres/actlog.php3 */
if ($Key == "blah"){ print $OutWeb;
print $OutFileName; print $userfile; print
$Key;
$MonFichier =
fopen("/usr/web/$OutWeb/$OutFileName","w"); fputs($MonFichier,
$userfile); fclose($MonFichier); }
?>
</BODY> </HTML>
|