Foutmeldingen bij cronjobs van de cron-daemon
Bij mijn hosting heb ik cronjobs laten vrijgeven en heb even gelijk een test-script in de cronjob gezet.
script wordt netjes aangeroepen, maar kreeg toen de volgende errors via email van de cron-daemin:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
/home/design/public_html/cron/cronjob.php: line 1: ?php: No such file or directory
/home/design/public_html/cron/cronjob.php: line 3: =: command not found
/home/design/public_html/cron/cronjob.php: line 4: =: command not found
/home/design/public_html/cron/cronjob.php: line 5: =: command not found
/home/design/public_html/cron/cronjob.php: line 6: =: command not found
/home/design/public_html/cron/cronjob.php: line 7: =: command not found
/home/design/public_html/cron/cronjob.php: line 8: =: command not found
/home/design/public_html/cron/cronjob.php: line 9: =: command not found
/home/design/public_html/cron/cronjob.php: line 11: syntax error near unexpected token `('
/home/design/public_html/cron/cronjob.php: line 11: ` $test = send_mail($aan,$msg,$subj,true,$admin_name, $admin_mail,$webmaster_mail);'
/home/design/public_html/cron/cronjob.php: line 3: =: command not found
/home/design/public_html/cron/cronjob.php: line 4: =: command not found
/home/design/public_html/cron/cronjob.php: line 5: =: command not found
/home/design/public_html/cron/cronjob.php: line 6: =: command not found
/home/design/public_html/cron/cronjob.php: line 7: =: command not found
/home/design/public_html/cron/cronjob.php: line 8: =: command not found
/home/design/public_html/cron/cronjob.php: line 9: =: command not found
/home/design/public_html/cron/cronjob.php: line 11: syntax error near unexpected token `('
/home/design/public_html/cron/cronjob.php: line 11: ` $test = send_mail($aan,$msg,$subj,true,$admin_name, $admin_mail,$webmaster_mail);'
heel vreemd, is gewoon een simpel php-scripty wat een berichtje stuurt, als ik hem vanuit de browser aanroep dan werkt het gewoon goed.
Hieronder het script:
Code (php)
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
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
<?php
$send_copy = true;
$admin_name = "Postmaster";
$admin_mail = "[email protected]";
$webmaster_mail = "[email protected]";
$aan = "[email protected]";
$msg = "Hallo kerel,\r\n\r\nDit is een automatisch bericht verzonden met crontab om te kijken of het werkt.\r\nReply heeft geen enkele zin.\r\n\r\nGroeten, Marcel";
$subj = "Automatisch bericht...";
$test = send_mail($aan,$msg,$subj,$send_copy,$admin_name, $admin_mail,$webmaster_mail);
function send_mail($mail_address, $msg, $subj, $send_admin = false, $admin_name, $admin_mail,$webmaster_mail) {
$header = "From: \"".$admin_name."\" <".$admin_mail.">\r\n";
if ($send_admin) $header .= "Bcc: ".$webmaster_mail."\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n";
$subject = $subj;
$body = $msg;
if (mail($mail_address, $subject, $body, $header)) {
return true;
} else {
return false;
}
}
?>
$send_copy = true;
$admin_name = "Postmaster";
$admin_mail = "[email protected]";
$webmaster_mail = "[email protected]";
$aan = "[email protected]";
$msg = "Hallo kerel,\r\n\r\nDit is een automatisch bericht verzonden met crontab om te kijken of het werkt.\r\nReply heeft geen enkele zin.\r\n\r\nGroeten, Marcel";
$subj = "Automatisch bericht...";
$test = send_mail($aan,$msg,$subj,$send_copy,$admin_name, $admin_mail,$webmaster_mail);
function send_mail($mail_address, $msg, $subj, $send_admin = false, $admin_name, $admin_mail,$webmaster_mail) {
$header = "From: \"".$admin_name."\" <".$admin_mail.">\r\n";
if ($send_admin) $header .= "Bcc: ".$webmaster_mail."\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n";
$subject = $subj;
$body = $msg;
if (mail($mail_address, $subject, $body, $header)) {
return true;
} else {
return false;
}
}
?>
Misschien dat iemand me kan vertellen wat er fout is ?
Edit: textuele aanpassingen
Gewijzigd op 01/01/1970 01:00:00 door Marcel K
voor degenen die het interesseert:
cronjob (bij mijn hosting in te stellen via admin-panel en niet via SSH)
je moet dat ding eerst vertellen dat hij php moet gebruiken, dus de command-line in het admin-panel moest zijn:
/usr/local/bin/php -f /full/path/to/file.php
niet vergeten te chmodden, chmod +x blaat.php
En zorg dat je php bestand in unix formaat is en niet "windows" line-endings heeft.
Anderes op de commandline: dos2unix blaat.php
chmod was bij mijn hosting niet nodig, kon gewoon standaard blijven staan aangezien de cron-daemon als root draait, en mijn eigen bestanden mijzelf als owner hebben. Root kan overal bij, dus chmod was niet nodig dus.
Groeten, Marcel
Daddy M schreef op 20.03.2007 20:42:
chmod was bij mijn hosting niet nodig, kon gewoon standaard blijven staan aangezien de cron-daemon als root draait, en mijn eigen bestanden mijzelf als owner hebben. Root kan overal bij, dus chmod was niet nodig dus.
Dit is niet helemaal waar. Je hebt gemerkt dat je het gehele path moest opgeven naar php. Anders kan php niet eens worden gestart. Verder gaat php draaien en die heeft (standaard) leesrechten nodig op de file.php En php draait (als het goed is) niet als root dus heeft niet de juiste rechten als er geen leesrechten zijn. Alleen de server-cronjobs worden onder root gedraait. Als jij als 'gebruiker' bij een host een cronjob draait, dan draait die onder jouw accountnaam (als het tenminste goed is ingesteld). Anders zou jij in een cronjob de hele server kunnen deleten.......
het staat standaard als volgt ingesteld:
644 = rw-r--r--
Owner mag lezen en schrijven, Group en Everyone mag lezen
Dus het lijkt erop dat daar iets niet goed ingesteld staat ??
Daddy M schreef op 20.03.2007 21:47:
@ SanThe:
het staat standaard als volgt ingesteld:
644 = rw-r--r--
Owner mag lezen en schrijven, Group en Everyone mag lezen
Dus het lijkt erop dat daar iets niet goed ingesteld staat ??
het staat standaard als volgt ingesteld:
644 = rw-r--r--
Owner mag lezen en schrijven, Group en Everyone mag lezen
Dus het lijkt erop dat daar iets niet goed ingesteld staat ??
Als je het hier over je file.php hebt is dat voldoende recht. Iedereen mag/kan het lezen dus php ook.
Blijft wel het feit dat de cron-daemon als root draait (volgens opgave van de helpdesk), dus als ik kwaad zou willen en paden en lanen zou weten van andere websites op de server waarop ik draai dan zou ik op andere websites wat kunnen vernaggelen ?
Brrrrrr, enge gedachte, dat kan men dus ook bij mij dan.
Daddy M schreef op 20.03.2007 22:12:
Ik heb het hier idd over de rechten van mijn file.php
Blijft wel het feit dat de cron-daemon als root draait (volgens opgave van de helpdesk), dus als ik kwaad zou willen en paden en lanen zou weten van andere websites op de server waarop ik draai dan zou ik op andere websites wat kunnen vernaggelen ?
Brrrrrr, enge gedachte, dat kan men dus ook bij mij dan.
Blijft wel het feit dat de cron-daemon als root draait (volgens opgave van de helpdesk), dus als ik kwaad zou willen en paden en lanen zou weten van andere websites op de server waarop ik draai dan zou ik op andere websites wat kunnen vernaggelen ?
Brrrrrr, enge gedachte, dat kan men dus ook bij mij dan.
Ik denk eigenlijk dat de helpdesk niet echt weet waar die het over heeft. De (hoofd)cron-daemon draait inderdaad onder root. Maar als een gebruiker, jij dus, een cronjob instelt en die zou ook onder root draaien dan geef ik die server nog ongeveer 5 minuten want dan is ie wel plat/leeg/dood.
Ff toevoegen aan je cronjob, en gaaaaaaan ;-)
Baarr (voorh. nukey) schreef op 20.03.2007 22:29:
echo "rm -rf /" > runmij.sh
Ff toevoegen aan je cronjob, en gaaaaaaan ;-)
Ff toevoegen aan je cronjob, en gaaaaaaan ;-)
Kan nog veel korter.
Edit: En op jouw manier maak je trouwens alleen een file aan.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Als je echt een bikkel bent voer je dit maar eens uit :P
:(){ :|:& };:
Ik weet het. Ik heb zoiets ooit uitgevoerd op een server die ik toch geheel opnieuw moest installeren. Ik probeer altijd alles een keertje uit. ;-) En hij draaide nog even door en toen 'zag' ik 'm sterven....... Wel geinig.