Zoek script automatisch een bestand uploaden
Ik ben dringend op zoek naar een (php) script om automatisch een bestand wat op server1 staat te downloaden naar server2.
Ik zal het iets duidelijker proberen uit te leggen:
Op server-1 staan foto's. Deze foto's wisselen een aantal keer per dag. (Het gaat om satelliet beelden) Om deze foto's weer te kunnen geven op mijn website moet ik een aantal keer per dag (op vaste tijden) deze foto's downloaden van server-1 en deze vervolgens uploaden naar server-2.
(Hotlinken is geen optie ivm dataverkeer beperking van server-1)
Ik doe dit nu handmatig door op mijn pc de foto's te downloaden en vervolgens weer te uploaden.
Graag zou ik iets hebben wat dit proces voor mij kan automatiseren.
Het liefst een (php) script wat ik dmv een cronjob op de server kan uitvoeren.
wat moet het script precies kunnen:
- foto's downloaden van server-1
- op server-2 de oude foto's wissen (of desnoods overschrijven door de nieuwe)
- foto's van server 1 uploaden naar server-2
- Log bestandje aanmaken zodat ik kan controleren of de down/upload is uitgevoerd en of alles goed gegaan is.
Nu mijn vraag...
Bestaat er zoiets? Heb al gezocht met google maar eigenlijk niets kunnen vinden wat geschikt is.
Het liefst een freeware oplossing, het is voor mij ook maar een hobby ;-)
Alvast bedankt voor de reacties!
Groet,
Theo
-verwijderen/archieveren oude foto's
-nieuwe foto's van server 1 download?
- tijd, errors? naar bestand schrijven
Zoek op google eens op curl, wget, fread download dit zijn 3 manieren om te downloaden met php.
Klein functie voorbeeld:
$locationimage = "http://www.voorbeeldimages.ltd/images.jpg ;
$iconname = "naamiconlocal.jpg" ;
function geticon($locationimage, $iconname) {
global $rootpath ;
$localfile = $rootpath."upicon/".$iconname ;
exec("/usr/bin/wget $pornpic -O $localfile") ;
return $localfile ;
}
Afijn, deze function gebruikt wget om een bestand te downloaden naar een lokaal bestand ":)
Moet het absoluut met php of kan je in de cron ook linux/unix commands/script schedulen? Een OS script is eenvoudig en snel, gebruik dan scp (secure copy).
Maar uiteraard zijn andere oplossingen ook welkom. Uiteindelijk gaat het om het resultaat!
De server die ik gebruik (server-2) draait onder linux en daar heb ik root toegang op. (dedicated server) Echter, server-1 kan ik alleen via web benaderen. Dit is een server van een meteo dienst.
Gewijzigd op 07/12/2010 15:35:43 door TeeSee vierenzestig
rm -f /full_path/bestand1 /full_path/bestand2 /full_path/bestand3
of rm -f /full_path/*.jpg
wget http://meteoserver.xx/bestand1.jpg
wget http://meteoserver.xx/bestand2.jpg
wget http://meteoserver.xx/bestand3.jpg
save het bestand en chmod het naar 766
en schedule dat in de cron. Zoek op google even howto cron.
crontab -e
10 11 * * * /root/haal_bestanden.sh >/root/haal_bestanden.log
eenvoudige dan php toch??
Gewijzigd op 07/12/2010 15:48:50 door John D
John D op 07/12/2010 15:47:38:
... en chmod het naar 766
Je bedoelt 644 neem ik aan.
Je moet het bestand waarschijnlijk chmodden naar 777 of 755 als shared is.
Ik ga hier eens mee aan de slag. Kijken of het me gaat lukken.
Ik laat nog even weten of het gelukt is.
Groet,
Theo