Toon posts:

cronjob tussen 2 servers

Pagina: 1
Acties:

Verwijderd

Topicstarter
Via google kwam ik er niet echt uit dus daarom maar hier de vraag stellen.

Ik heb 2 servers. En nu wil ik weten, en als het kan hoe, of je bv server 1 een cronjob kan laten draaien voor server 2.

op server 2 staat een script maar daar is een cronjob niet mogelijk en dus wil ik dan als het mogelijk is via server 1 de cronjob gaan draaien.

Verwijderd

Ja dit kan, mits je op bijvoorbeeld op beide servers php hebt geinstalleerd

je moet wel een mechanisme creeren dat van 'buiten' je script kan afvuren

  • lammert
  • Registratie: Maart 2004
  • Laatst online: 24-01 21:51
Remote SSH commando opnemen in het script voor je cronjob?

ssh user@host "command"

  • Kettrick
  • Registratie: Augustus 2000
  • Laatst online: 11:53

Kettrick

Rantmeister!

lammert schreef op donderdag 08 mei 2008 @ 18:09:
Remote SSH commando opnemen in het script voor je cronjob?

ssh user@host "command"
En dan in combinatie met public keys zodat je cronjob niet op input wacht ;)

Verwijderd

Topicstarter
Verwijderd schreef op donderdag 08 mei 2008 @ 18:05:
Ja dit kan, mits je op bijvoorbeeld op beide servers php hebt geinstalleerd

je moet wel een mechanisme creeren dat van 'buiten' je script kan afvuren
ik heb dus op alle 2 servers php staan. ik wou het eerst via een wget optie aanroepen maar dat werkte dus niet zoals het moest werken.

http://soulmaster.no-ip.org/weer/meteo24_24.php is het script op mijn eigen server

http://www.meteo-in.nl/weer/meteo24_24.php is het script wat eigenlijk via de cronjob op mijn eigen server moet worden geupdate. 4 x per uur.

wat ik deed op mijn eigen server was wget http://www.meteo-in.nl/weer/meteo24_24.php . maar alles wat er gebeurde was een enorme hoeveelheden bestanden in de rootmap van mijn server.

Verwijderd

Topicstarter
RoeLz schreef op donderdag 08 mei 2008 @ 18:13:
[...]


En dan in combinatie met public keys zodat je cronjob niet op input wacht ;)
oke, maar dan mijn volgende vraag. hoe ?

ik heb op server 2 geen ssh toegang. op mijn eigen server wel.

  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Geen SSH toegang? Hoe kom je er dan op?

Als je de PHP pagina van server1 naar server2 wil kopieeren (want begrijp ik goed dat dat is wat je wil?) kun je bijvoorbeeld via een scriptje de file via ftp kunnen overzetten.

Anders kun je op server2 een ftp script maken wat met shell_exec() het commando aanroept wat je wil uitvoeren. In de crontab van server 1 zet je dan
code:
1
wget server2/cronjob.php
Niet echt veilig, maar kan wel werken.

We are pentium of borg. Division is futile. You will be approximated.


Verwijderd

Als ik het goed begrijp wil je gewoon de pagina http://www.meteo-in.nl/weer/meteo24_24.php 4 keer per dag "stelen"... Met alleen een wget in je crontab word dit bestand gewoon in de current working directory gezet. Als je even een simpel scriptje maakt, zoiets als:

#!/bin/bash
# Sla dit op als /home/root/steelscript.sh
cd /var/www/weer
wget http://www.meteo-in.nl/weer/meteo24_24.php
# einde script

doe je in de crontab /home/root/steelscript.sh. Dan zet ie hem ook nog in de goeie directory.

Of begrijp ik het helemaal verkeerd?

Verwijderd

Topicstarter
Verwijderd schreef op donderdag 08 mei 2008 @ 20:41:
Als ik het goed begrijp wil je gewoon de pagina http://www.meteo-in.nl/weer/meteo24_24.php 4 keer per dag "stelen"... Met alleen een wget in je crontab word dit bestand gewoon in de current working directory gezet. Als je even een simpel scriptje maakt, zoiets als:

#!/bin/bash
# Sla dit op als /home/root/steelscript.sh
cd /var/www/weer
wget http://www.meteo-in.nl/weer/meteo24_24.php
# einde script

doe je in de crontab /home/root/steelscript.sh. Dan zet ie hem ook nog in de goeie directory.

Of begrijp ik het helemaal verkeerd?
nee maar je komt wel in de buurt.

wat ik wil is vanaf mijn thuisserver dit script aanroepen op de andere server. die haalt dan gegevens van een weersite en zorgt ervoor dat meteo24_24.php wordt geupdate via een .dat bestand.

http://www.meteo-in.nl/weer/meteo24_script.php moet 4 x per uur worden aangeroepen vanaf mijn huis server.

Dus de optie wget werkt niet omdat hij dan de boel lokaal dus thuis opslaat.

  • daft_dutch
  • Registratie: December 2003
  • Laatst online: 02-12-2025

daft_dutch

>.< >.< >.< >.<

Rainmaker schreef op donderdag 08 mei 2008 @ 19:32:
[..]Niet echt veilig, maar kan wel werken.
niet veilig gebruik https en een ?password=foo
if (($_Get['password'] != 'foo') {
header("HTTP/1.0 404 Not Found");
die();
}
en of
met een dynamisch ip
if (!strstr($_Server['HTTP_HOST'],"provider.nl"))
of
if ($_Server['REMOTE_ADDR'] != '127.0.0.1')
Verwijderd schreef op donderdag 08 mei 2008 @ 21:05:
[...]
Dus de optie wget werkt niet omdat hij dan de boel lokaal dus thuis opslaat.
Dan wget je toch een php script. dat weer een wget script start of fopen("http://zooi",r) aanroept

[ Voor 26% gewijzigd door daft_dutch op 08-05-2008 22:49 ]

>.< >.< >.< >.<


Verwijderd

met:
#!/bin/bash
# Sla dit op als /home/root/steelscript.sh
cd /var/www/weer
rm meteo24_24.php
wget http://www.meteo-in.nl/weer/meteo24_24.php
# einde script

gooit ie eerst het oude bestand weg.

Maar als je de data in een .dat file wilt opslaan zul je de html tags enzo eruit moeten slopen met commandootjes als sed enzo...

  • BCC
  • Registratie: Juli 2000
  • Laatst online: 18:51

BCC

Wil je nou de php of het gegenereerde resultaat (de html) hebben?

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


Verwijderd

Je kunt natuurlijk ook gewoon even
wget -q -O- http://www.meteo-in.nl/weer/meteo24_24.php

doen, in plaats van te gaan klootviolen het verwijderen van bestandjes waarin je niet bent geinteresseerd.

[edit]
En als de output je helemaal niet interesseert pipe je die naar /dev/null, of gebruik je --spider.

[ Voor 20% gewijzigd door Verwijderd op 08-05-2008 22:59 ]


  • BarthezZ
  • Registratie: Juli 2004
  • Niet online

BarthezZ

anti voetbal en slechte djs!

Iedereen zit maar wat te gissen en het is nou niet echt duidelijk wat nou precies de bedoeling is...

Je wilt iets updaten, je wilt iets aanroepen, of je wilt iets doen op een andere server? Het is me echt totaal niet duidelijk... Kan je mischien even je intentie posten, zonder daarbij je oplos methode (die niet werkt kennelijk) zodat we duidelijk inzicht kunnen gebruiken om je probleem op te lossen. :)

Verwijderd

Topicstarter
BarthezZ schreef op donderdag 08 mei 2008 @ 22:57:
Iedereen zit maar wat te gissen en het is nou niet echt duidelijk wat nou precies de bedoeling is...

Je wilt iets updaten, je wilt iets aanroepen, of je wilt iets doen op een andere server? Het is me echt totaal niet duidelijk... Kan je mischien even je intentie posten, zonder daarbij je oplos methode (die niet werkt kennelijk) zodat we duidelijk inzicht kunnen gebruiken om je probleem op te lossen. :)
k dit is de bedoeling dus :

1. server 1 thuis moet een cronjob gaan draaien voor een script op server 2 elders.

Verwijderd

Je kunt niet een script laten uitvoeren op server2 door het in de crontab van server1 te zetten.

  • daft_dutch
  • Registratie: December 2003
  • Laatst online: 02-12-2025

daft_dutch

>.< >.< >.< >.<

Verwijderd schreef op vrijdag 09 mei 2008 @ 04:09:
[...]
k dit is de bedoeling dus :
1. server 1 thuis moet een cronjob gaan draaien voor een script op server 2 elders.
Alles is al verteld:
nog voor de herhaling

server1 thuis wget://server2/cronjob.php

server2 cronjob.php
system("wget wat dan ook");

>.< >.< >.< >.<


  • a casema user
  • Registratie: Januari 2000
  • Laatst online: 06-01 19:09
zet anders het php bestand in een directory welke beveiligd is met een .htaccess bestand. Via wget kan username/wachtwoord doorgegeven worden.

Taaaa taa taa taaaa taa taa ta taaataaaaa.


  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Verwijderd schreef op donderdag 08 mei 2008 @ 21:05:
[...]

Dus de optie wget werkt niet omdat hij dan de boel lokaal dus thuis opslaat.
Ik denk dat ik snap waar je denkfout zit.

Je denkt dat wget is voor het binnenhalen van het bestand. Maar eigenlijk is dit alleen om je php script te "activeren".

Dus, from the top.

Op server thuis in de crontab:
code:
1
0-59/15 * * * * /tmp/steel.sh

en /tmp/steel.sh:
code:
1
2
#/bin/bash
wget -q -O - server2/cronjob.php


Op server in datacenter maak je cronjob.php met deze tekst:
code:
1
2
3
<?php
shell_exec("wget -q -O meteo.html http://www.meteo-in.nl/weer/meteo24_24.php")
?>


Uit mn hoofd, niets getest, dus uitvoeren op eigen risico.

PS. Apache / PHP mag hiervoor niet in "safe mode" draaien.

[ Voor 3% gewijzigd door Rainmaker op 09-05-2008 13:39 ]

We are pentium of borg. Division is futile. You will be approximated.


Verwijderd

Topicstarter
Rainmaker schreef op vrijdag 09 mei 2008 @ 13:37:
[...]


Ik denk dat ik snap waar je denkfout zit.

Je denkt dat wget is voor het binnenhalen van het bestand. Maar eigenlijk is dit alleen om je php script te "activeren".

Dus, from the top.

Op server thuis in de crontab:
code:
1
0-59/15 * * * * /tmp/steel.sh

en /tmp/steel.sh:
code:
1
2
#/bin/bash
wget -q -O - server2/cronjob.php


Op server in datacenter maak je cronjob.php met deze tekst:
code:
1
2
3
<?php
shell_exec("wget -q -O meteo.html http://www.meteo-in.nl/weer/meteo24_24.php")
?>


Uit mn hoofd, niets getest, dus uitvoeren op eigen risico.

PS. Apache / PHP mag hiervoor niet in "safe mode" draaien.
\o/ dit deed het :)

tnx
Pagina: 1