Bonjour,

J'ai fait un petit script qui a pour but de collecter des données sur un serveur x et les copier sur un serveur y. Lorsque je roule le script manuellement sur le serveur en l'appelant de cette façon: ./rsync.pl cela fonctionne sans problème.

Le problème est qu'il ne fonctionne pas dans un crontab.

Voici mon crontab:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
# Mise a jour hebdo des donnees provenant du cdrmgr pour Rapport Hebdo
50 10 * * * /var/www/Rapport/Scripts/rsync.pl
Et voici mon script:

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
 
#!/usr/bin/perl -w
 
use POSIX qw(strftime);
 
open(FILEHANDLER,">/var/www/Rapport/Scripts/toto.txt");
close(FILEHANDLER);
 
my $date = strftime "%Y-%m-%d", localtime;
 
my $path = <<"PATH";
'"/opt/cdrmgr/reports/Hebdo_call_type_CA156_$date\_00:00:00.csv" "/opt/cdrmgr/reports/Hebdo_on_net_CA156_$date\_00:00:00.csv" "/opt/cdrmgr/reports/Hebdo_on_to_off_CA156_$date\_00:00:00.csv" "/opt/cdrmgr/reports/Hebdo_off_to_on_CA156_$date\_00:00:00.csv" "/opt/cdrmgr/reports/Hebdo_announcement_CA156_$date\_00:00:00.csv" "/opt/cdrmgr/reports/Hebdo_vm_CA156_$date\_00:00:00.csv" "/opt/cdrmgr/reports/Hebdo_call_term_causes_CA156_$date\_00:00:00.csv" "/opt/cdrmgr/reports/Hebdo_call_completion_total_CA156_$date\_00:00:00.csv" "/opt/cdrmgr/reports/Hebdo_call_completion_normal_CA156_$date\_00:00:00.csv" "/opt/cdrmgr/reports/Hebdo_call_vm_total_CA156_$date\_00:00:00.csv" "/opt/cdrmgr/reports/Hebdo_call_vm_normal_CA156_$date\_00:00:00.csv"' /var/www/Rapport/cdr
PATH
my $Rsync = "/usr/bin/rsync -v -e /usr/bin/ssh xx.xxx.xxx.xxx:";
my $cmd = $Rsync . $path;
print "[$cmd]\n";
system($cmd);
La partie:

open(FILEHANDLER,">/var/www/Rapport/Scripts/toto.txt");
close(FILEHANDLER);

Ne sert qu'à vérifier si le cron s'execute et il s'execute bien puisque le fichier toto.txt est bien créer à chaque fois que le cron est lancé.

Est-ce que quelqu'un aurait une idée du problème?

Merci d'avance.