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 :
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 55 14 * * * /var/www/vhosts/domaine.net/httpdocs/file_cron.php > /var/www/vhosts/domaine.net/httpdocs/sortiecontrol.txt 2>&1
Précisions :
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; } ?>
- 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.
Partager