RSS auf dem Server per Cronjob aktualisieren.

snake*sl

Registered User
Hallo,

ich habe eine Seite auf der immer die aktuellen Ebay-Angebote eines Verkäufers angezeigt werden. Die Daten werden vom Ebay-RSS-Feed geholt und weiterverarbeitet. Ich cache mittlerweile schon, weil das abholen der Daten etwas länger dauert (um die fünf Sekunden).
Beim Aufruf der Website wird einfach überprüft ob die RSS älter als drei Stunden ist, wenn ja, dann wird die Datei vom Ebay-Server geholt.

Jetzt würde ich gerne das ganze per Cronjob erledigen. Mein erster Ansatz:
PHP:
0  *    * * *  wget http://domain.de/index.php
funktioniert, aber hierbei wird auch eine index.html in / erstellt.

Mein zweiter Ansatz war folgender:
PHP:
0  *    * * *  www-data cd /var/www/webordner/ && /usr/bin/php index.php hourly
das geht aber völlig in die hose. hierbei funktionieren die php-scripte nicht mehr. Wahrscheinlich wegen den Pfaden, möchte aber ungern die Scripte ändern.

Hat jemand 'ne Idee?
 
Gib den Pfad zum PHP bin mit an dann sollte es gehen.

edit: Alternativ in die php Skripte einfügen : #!/usr/bin/php5 (Pfad ggf anpassen)
 
Last edited by a moderator:
Hallo!
Code:
wget -q -O /dev/null http://domain.de/index.php
Probier es mal so.

mfG
Thorsten
 
Gib den Pfad zum PHP bin mit an dann sollte es gehen.

edit: Alternativ in die php Skripte einfügen : #!/usr/bin/php5 (Pfad ggf anpassen)
Also der Pfad haut so hin /usr/bin/php5. Durch Deinen Post ist mir dann auch aufgefallen, dass ich einen falschen Pfad in meinem Cronjob hatte.

Mein derzeitiger Cronjob sieht so aus:
PHP:
#!/usr/bin/php5
0  *    * * *  www-data cd /var/www/webordner/ && /usr/bin/php5 index.php hourly
Laut syslog wird der Cronjob auch (ohne Fehlermeldungen) ausgeführt, jedoch ändert sich an der XML nichts.

Thorsten said:
Hier passiert leider auch garnichts Anmerkung: Habs von Hand getestet).
 
Kann man eigentlich mit wget auch Dateien von einem Server holen und in einem bestimmten Ordner speichern?

Wäre es nicht einfacher und sauberer die RSS vom Ebay Server auf den eigenen zu kopieren?

Ich hab das mal ohne ein Zielverzeichnis anzugeben (wüsste nicht, wie das geht) getestet. Offensichtlich gibt's hier Probleme mit dem Query:
PHP:
[1] 2578
[2] 2579
[3] 2580
[4] 2581
debian:/# --11:43:43--  http://rss.api.ebay.com/ws/rssapi?FeedName=StoreItems
           => `rssapi?FeedName=StoreItems'
Auflösen des Hostnamen »rss.api.ebay.com«.... 66.135.210.63
Verbindungsaufbau zu rss.api.ebay.com|66.135.210.63|:80... verbunden.
HTTP Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 1.195 (1.2K) [text/xml]

100%[========================================================================================================================================>] 1.195         --.--K/s

11:43:44 (17.58 MB/s) - »rssapi?FeedName=StoreItems« gespeichert [1195/1195]

[1]   Done                    wget http://rss.api.ebay.com/ws/rssapi?FeedName=StoreItems
[2]   Done                    siteId=77
[3]-  Done                    language=de-DE
[4]+  Done                    output=RSS20
 
Juchuhhh, hab's jetzt mit cURL hinbekommen:

Also mein Cronjob sieht jetzt so aus
/etc/cron.d/ebayRSS
PHP:
*/30  *    * * *  root curl http://rss.api.ebay.com/ws/rssapi\?FeedName=StoreItems\&siteId=77\&language=de-DE\&output=RSS20\&storeId=71276492 -o /var/www/webordner/xml/ebay_rss.xml
 
Back
Top