PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RSync mit PHP starten ?



repa
18.11.07, 02:18
Hi,

folgende konstelation:

Server1: FTP, HTTP, RSYNC
Server2: HTTP
Server3: HTTP

Ich habe in TEam, das Downloads upped, auf Server1. Via DNS RoundRobin wird die Last der Server auf alle drei Maschinen verteilt.

Nun, wenn einer was auf Server 1 upped, muss das natürlich auf 2&3 kopiert werden. Dafür RSync, das läuft schon.

Nun möchte ich, dass wenn einer was via FTP Geupped hat, ein Rsync via PHP gestartet wird.

Ich könnts auch mit Cron machen, wenn der aber nur alle 10 Minuten läuft und jemand versucht, was zu saugen, dann kriegt er nen 404, da es evt. auf einem der server ned drauf ist.

hat jemand eine idee, wie ich das am besten hinkrieg?

thx!

zyrusthc
18.11.07, 02:46
Ich könnts auch mit Cron machen, wenn der aber nur alle 10 Minuten läuft und jemand versucht, was zu saugen, dann kriegt er nen 404, da es evt. auf einem der server ned drauf ist.
Meinst Du jetzt Cron? Dann stelle den Cronjob so ein das er jede Minute ausgeführt wird.

Ansonsten musst Du deinen rsync Befehl mit shell_exec , exec oder system in deine php-Scripte einbauen.

Greeez Oli

repa
18.11.07, 02:58
hi,
ja, der cron ist halt statisch, deshalb kann es sein, wenn einer um 00:01 was upped, und einer von Server2 um 00:10 das saugen will nen 404 kriegt, da der cron mitm rsync erst um 00:15 rennt.


naja, jede minute nen rsync, was passiert, wenn ein 4 Gig File auf dem Server liegt? dann läuft ein rsync und der nächste wir mit dem cron angestossen ?

zyrusthc
18.11.07, 03:04
Dann bau es halt in deinen php-Scripte wie schon erwähnt ein.

Greeez Oli

repa
18.11.07, 13:08
ich bin in php so gut, wie ne kuh beim eierlegen ^^

kennt jemand so ein script ?

zyrusthc
18.11.07, 15:44
kennt jemand so ein script ?
Das ganze muss einfach nur in dein Upload-Script eingebunden werden das es nach dem Upload aufgerufen wird!

if ($_FILES['datei']['name'] == "") {
move_uploaded_file($_FILES['datei']['tmp_name'], "$pfad/".$_FILES['datei']['name']);
blabla
// nach dem Upload dann dein rsync
$output = shell_exec('rsync ..........');
echo "<pre>$output</pre>";
// Ende
}


Greeez Oli

repa
18.11.07, 20:53
gehen wir davon aus, wir uppen per FTP und danach stossen wir den rsync via php an.

sieht das dann wie von die beschrieben aus?

zyrusthc
18.11.07, 20:58
sieht das dann wie von die beschrieben aus?
Das war nur ein Beispiel!

Ein einfacher Update-Button dafür könnte so aussehen:

<?php
if ($_POST['rsync']) {
$output = shell_exec("rsync .....");
echo $output;
}

echo "<form name="rsync" method="post" action="$PHP_SELF">
<input type="submit" value="rsync ausf&uuml;hren">
</form>";
?>


Greeez Oli