Cronjob / Crontab

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

George van Baasbank

George van Baasbank

08/03/2012 15:37:13
Quote Anchor link
Hallo allemaal,

Ik heb zojuist bij mijn provider (Nxs) een cronjob aangemaakt die dagelijks een routine moet draaien. Hoewel de provider geen ondersteuning hierbij geeft heeft deze mij wel wat op weg geholpen. Echter, de cronjob werkt niet.

De bedoeling is dat er dagelijks een bestand, jarig.php, wordt gedraaid die een e-mail naar de jarige stuurt.

Nu heb ik ergens gelezen dat bij gebruik van php-files er nog een instelling hiervoor moet worden gemaakt.

Wie weet hier iets van of heeft ervaringen hiermee?

Je zou mij geweldig helpen.


George van Baasbank
 
PHP hulp

PHP hulp

22/12/2024 20:35:15
 
- Ariën  -
Beheerder

- Ariën -

08/03/2012 15:50:07
Quote Anchor link
Hoe voer je die cronjob uit, en gebruik je ook includes in je script?
 
George van Baasbank

George van Baasbank

08/03/2012 16:47:17
Quote Anchor link
Aar,

Ik heb de volgende cronjob ingevoerd:

15 05 * * * /home/[gebruikersnaam]/beheer/jarig.php

Dit ou dus betekenen dat dagelijks om 05.15 uur het bestand jarig.php moet worden gestart.

Hiero0nder de code van het bestand jarig.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/**
 * @author George van Baasbank
 * @copyright 2011
 */

session_start();

error_reporting(0);

// Constanten voor mysql_connect() insluiten:
require_once('mysql_connect.inc.php');

// Databaseverbinding openen:
$verbinding = mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die("Verbinding mislukt: " . mysql_error());

// Database selecteren:
mysql_select_db("muziekcatalogus") or die("Kon de database niet openen: " . mysql_error());

// Query samenstellen en uitvoeren
$sql = "SELECT * FROM leden WHERE lid = 'Ja' AND MONTH(geboortedatum) = MONTH(CURDATE()) AND DAY(geboortedatum) = DAY(CURDATE()) ORDER BY naam";
 
$result = mysql_query($sql);
        
if(mysql_num_rows($result) > 0) {
    $nAantal = mysql_num_rows($result);
    //echo "De database bevat ".$nAantal." leden.";
    while ($row=mysql_fetch_assoc($result)){
        $dJarig = $row['geboortedatum'];
        $email  = $row['email'];
        
        $cVoll_naam = $row['voorletters']." ".$row['tussenvoeg']." ".$row['naam'] ;
        //echo "De jarige van vandaag is ".$cVoll_naam;
        
        // Bericht opstellen
        $cBericht .= "Van harte gefeliciteerd met je verjaardag". "\r\n\r\n";  
        $cBericht .= "Alweer een jaartje ouder."."\r\n\r\n";
        $cKaart = file_get_contents("felicitatiekaart.jpg");
        
        // Bericht opmaken voor ontvanger
        $cBericht = "Beste ".$cVoll_naam.", \r\n\r\n ".$cBericht;
        $cBericht .= "\r\n";
        $cBericht .= "Met vriendelijke groeten, \r\n\r\n";
        $cBericht .= "De koor- en orkestleden van Catharina's Choir & Orchestra \r\n";
        $cBericht .= "<noreply@".$_SERVER['SERVER_NAME'].">";
                
        // Onderwerp en header e-mailbericht
        $onderwerp = "Er is er een jarig bij het ".$_SERVER['SERVER_NAME'];
        $headers = "From: noreply@".$_SERVER['SERVER_NAME']."\r\n\r\n";
                
        // Verzenden e-mailbericht
        if(mail($email,$onderwerp,$cBericht,$headers)) {
            //$cMelding = "Het e-mailbericht met de felicitatie is verzonden aan: ".$cVoll_naam."\r\n\r\n";
            //echo $cMelding."\r\n";
            $cVoll_naam = "";
            $cBericht = "";
        }    
    }
}

//Database sluiten
mysql_close($verbinding);

?>


 
- Ariën  -
Beheerder

- Ariën -

08/03/2012 16:57:08
Quote Anchor link
Ik zie niet dat je het script door php laat uitvoeren.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
15 05 * * * php /home/[gebruikersnaam]/beheer/jarig.php


Verder zal in je cronjob het bestand 'mysql_connect.inc.php' niet geopend kunnen worden. Pas deze include aan naar:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
require_once('home/[gebruikersnaam]/beheer/mysql_connect.inc.php');
 
George van Baasbank

George van Baasbank

08/03/2012 17:08:08
Quote Anchor link
Volgens mij was dat ook mijn vraag. Hoe en waar doe ik dat (Uitvoeren php-script)
 
Bram w

bram w

08/03/2012 17:10:55
Quote Anchor link
of gewoon dit :)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php

require_once dirname(__FILE__).'/mysql_connect.inc.php';
?>
 
- Ariën  -
Beheerder

- Ariën -

08/03/2012 17:12:45
Quote Anchor link
George van Baasbank op 08/03/2012 17:08:08:
Volgens mij was dat ook mijn vraag. Hoe en waar doe ik dat (Uitvoeren php-script)

Zie mijn vorige reactie.
 
George van Baasbank

George van Baasbank

08/03/2012 17:22:09
Quote Anchor link
20 17 * * * /opt/php5 /home/cco-harderwijk/beheer/jarig.php
Dan krijg je dus zoiets
Gewijzigd op 08/03/2012 17:22:35 door George van Baasbank
 
- Ariën  -
Beheerder

- Ariën -

08/03/2012 17:24:54
Quote Anchor link
Ligt er wel aan waar PHP geinstalleerd is.

Zie ook system('which php')
In mijn geval: /usr/local/bin/php
Gewijzigd op 08/03/2012 17:25:46 door - Ariën -
 
George van Baasbank

George van Baasbank

08/03/2012 17:28:21
Quote Anchor link
DE plek waar php5 is geïnstalleerd is mij door de provider aangereikt
 
- Ariën  -
Beheerder

- Ariën -

08/03/2012 17:29:36
Quote Anchor link
Als het goed is moet
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php system('which php'); ?>
dat kunnen bevestigen ;-)

Anyway, werkt het nu wel?
 
George van Baasbank

George van Baasbank

08/03/2012 18:11:20
Quote Anchor link
Nee, het werkt nog niet.
Als info heb ik de tekst van het welkomstscherm van de provider gekopieerd.


Linux shell 2.6.17.11-nxs-internet.03-grsec-grsec #1 SMP Wed Jun 13 13:02:55 CEST 2007 i686 GNU/Linux

Welkom bij Nxs Internet BV!

Bij algemene vragen en/of opmerkingen e-mail: <[email protected]>.

Het draaien van IRC gerelateerde background processen is strikt verboden,
hieronder vallen bijvoorbeeld bouncers en bots zoals, PsyBNC en Eggdrop.

Misbruik van de shell, zoals het versturen van SPAM, hacken en dergelijken,
zal resulteren in de ontzegging van de toegang tot de server.

Het is ook mogelijk om verschillende utils aan te vragen doormiddel van
het versturen van een e-mail naar <[email protected]>.

Let op! Zorg er echter wel voor dat de desbetreffende utils niet reeds zijn
geinstalleerd. Gebruik voor het zoeken hiervan: find, locate en whereis.

Andere technische opmerkingen over deze server kunnen ook naar het bovenstaande
e-mail adres gestuurd worden.

# Configuratie gelijk aan het virtual hosting cluster van Nxs Internet
- Mysql5 client aanwezig: /opt/mysql5/bin/mysql
- PHP4 aanwezig in: /opt/php4/
- PHP5 aanwezig in: /opt/php5/
 
- SanThe -

- SanThe -

08/03/2012 18:17:09
Quote Anchor link
George van Baasbank op 08/03/2012 18:11:20:
- PHP5 aanwezig in: /opt/php5/


Dus moet je dit hebben:
/opt/php5/php
 
George van Baasbank

George van Baasbank

08/03/2012 18:23:14
Quote Anchor link
Het werkt noig niet.

Dit staat er in mijn cronjob:

* * * * * /opt/php5/php /home/cco-harderwijk/beheer/jarig.php

Dus elke minuut ou de routine aangeroepen worden
 
- SanThe -

- SanThe -

08/03/2012 18:30:46
Quote Anchor link
Maak dit er eens van:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
* * * * * /opt/php5/php /home/cco-harderwijk/beheer/jarig.php >/home/cco-harderwijk/beheer/error.txt 2>&1

Dan worden de eventuele output en errors in /home/cco-harderwijk/beheer/error.txt geschreven en kan je zien wat er fout gaat.
 
George van Baasbank

George van Baasbank

08/03/2012 18:38:55
Quote Anchor link
Moet 2>&1 er ook achter?????
 
- SanThe -

- SanThe -

08/03/2012 18:42:52
Quote Anchor link
Ja, dat is om de errors op te vangen.
 
George van Baasbank

George van Baasbank

08/03/2012 18:54:38
Quote Anchor link
Het blijft angstig stil.........
 
- SanThe -

- SanThe -

08/03/2012 18:58:32
Quote Anchor link
Wordt er een bestandje aangemaakt in de map beheer?
Zo nee, maak zelf even een bestandje error.txt aan in de map beheer en geef dat 666 rechten. Dan is het zeker dat daarin geschreven kan worden.
 
George van Baasbank

George van Baasbank

08/03/2012 19:04:26
Quote Anchor link
Ga ik doen......

Toevoeging op 08/03/2012 19:09:48:

Ik ben bang dat de cronjob niet wordt uitgevoerd.
 
- SanThe -

- SanThe -

08/03/2012 19:15:11
Quote Anchor link
Zet er eens een echo in. Dat moet dan ook in error.txt komen.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.