Bonjour à tous,

Je ne m'explique pas pourquoi ce script php, qui s'exécute très bien manuellement ne fonctionne plus quand il est exécuté par le webcron.

Voici les params du crontab :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
55	14	*	*	*	/var/www/vhosts/domaine.net/httpdocs/file_cron.php > /var/www/vhosts/domaine.net/httpdocs/sortiecontrol.txt 2>&1
Voici, en résumé, le script (chargé de transférer des fichiers sur un serveur distant via les fonctions FTP de php) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
#!/usr/bin/php -q
<?php
$today = date('Ymd');
$conn_id = ftp_connect("ftp.dom-distant.com");
 
$login_result = ftp_login($conn_id, "userid", "password") ;
 
$contents = lire('.');
 
$do = 0;
 
foreach($contents as $file)
{
	if($file != "index.php")
	{
		$file = basename($file).PHP_EOL;
 
		if(strpos($file, ".dat") !== false)
		{
			if(strpos($file, $today) !== false){
				$file_today = trim($file);
				if(ftp_put($conn_id, $file_today, $file_today, FTP_BINARY)){
					$do = 1;
				}else{
					mail("admin@dom.com", "erreur transfert DAT", "Echec DAT" , $teteC);
				}
 
			}
		}
	}
}
 
 
ftp_close($conn_id);
 
if($do == 1){
	$titreC    = "Transfert des fichiers DAT effectué";
	$message = "Transfert OK";
}else{
	$titreC    = "Transfert des fichiers DAT NON effectué";
	$message = "Transfert PAS OK";
}
mail("admin@dom.com", $titreC, $message , $teteC);
 
function lire($the_path){
$dir = $the_path;
$fichiers = array();
        $rep = @opendir($dir);
        while ($file = @readdir($rep)) {
            if($file != '..' && $file !='.' && $file !=''){
				$fichiers[] = $file;
			}
		}
return $fichiers;
}
?>
Précisions :
- Avec le cron, rien ne s'exécute puisque je reçois l'email "Transfert pas OK", mais rien d'autre.
- Aucun log n'est enregistré dans le fichier sortiecontrol.txt
- Je ne reçois pas d'erreur dans un email daemon système (parse error...)
- J'ai tenté avec le chemin PHP dans le crontab et pas dans le fichier : idem, ça ne change rien.
- Le script est en CHMOD 755.
- D'autres crons fonctionnent sur ce serveur (Centos 5.5 / PLesk 10)

Et surtout, dans le navigateur, tout est impec !
Est-ce une question de timing ?
Merci de vos lumières avisées.