Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2314 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs

  Les crons font des cronneries

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Les crons font des cronneries

n°739367
yohannsk
....
Posté le 10-10-2005 à 10:21:20  profilanswer
 

Bonjour amis linuxiens!!
 
Voila, je vous écris car j'ai un soucis avec mes crons! lol
 
Je vais essayer de donner le plus d'info possible.
 
J'utilise une redhat SE version 3 update 4
 
Je voulais lancer un script shell : procédurecalvet.sh et ceci à 6 heures 20 minutes. J'ai donc édité une crontab, situé dans /var/spool/cron :
 
SHELL=/bin/bash
HOME=/root
PATH=/usr/bin:/bin:/var/www/html/awstats/wwwroot/cgi-bin/calvet/
LOGNAME=root
 
20 06 * * * /var/www/html/awstats/wwwroot/cgi-bin/calvet/procedurecalvet.sh
 
Et comme vous pouvez vous douter cela ne marche pas.... lol
 
Rien ne se passe,or le script shell fonctionne lorsqu'on le lance dans un terminal, je reçois un mail d'erreur :
 
To: root@localhost.localdomain
Subject: Cron <root@awstats> /var/www/html/awstats/wwwroot/cgi-bin/calvet/procedurecalvet.sh
X-Cron-Env: <SHELL=/bin/bash>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin:/var/www/html/awstats/wwwroot/cgi-bin/calvet/>
X-Cron-Env: <LOGNAME=root>
 
/var/www/html/awstats/wwwroot/cgi-bin/calvet/procedurecalvet.sh: line 5: ./télécharge.sh: No such file or directory
/var/www/html/awstats/wwwroot/cgi-bin/calvet/procedurecalvet.sh: line 8: ./update.sh: No such file or directory
/var/www/html/awstats/wwwroot/cgi-bin/calvet/procedurecalvet.sh: line 11: ./efface.sh: No such file or directory
 
Le deamon cron est bien en marche, et les différents script shell (procedurecalvet.sh, télécharge.sh, update.sh, efface.sh) ont les droits 755....
 
Avez vous une idée?  
Ma syntaxe est elle fausse?
 
En vous remerciant par avance
 
SK!!


---------------
Il vaut mieux se taire et passer pour un con, plutot que l'ouvrir et prouver que l'on en est bien un....
mood
Publicité
Posté le 10-10-2005 à 10:21:20  profilanswer
 

n°739370
jlighty
Posté le 10-10-2005 à 10:24:13  profilanswer
 

déjà cron a bein exécuté ton script
sauf comme il l'a indiqué : il ne trouve pas télécharge.sh update.sh et efface.sh dans le répertoire courant. Au lieu de faire ./<programme> mais le chemin complet.

n°739373
syl94
Ni!
Posté le 10-10-2005 à 10:42:38  profilanswer
 

spa bien les accents dans les noms de fichiers  :o

n°739374
yohannsk
....
Posté le 10-10-2005 à 10:45:55  profilanswer
 

lol j'avais pas vu, ça a mis plein de smileys.... :/
 
Merci pour ton conseil car en effet le probléme vient de là. Le script d'origine appelle un programme en perl, mais comme j'avais un doute je l'ai enlevé, je l'ai remis et ça marche pour le perl, ma syntaxe : perl /var/.../.../..../..../action.pl
 
Peux tu me dire s'il te plait comment lancer le shell?
 
J'ai mis ./..../...../..../.../action.sh mais ça marche pas lol....
 
La syntaxe ne doit pas étre bonne....
 
Merci par avnce  
 
SK


---------------
Il vaut mieux se taire et passer pour un con, plutot que l'ouvrir et prouver que l'on en est bien un....
n°739380
yohannsk
....
Posté le 10-10-2005 à 10:49:08  profilanswer
 

En fait télécharge.sh n'existe pas lol, c'est un script en perl à la place, mais merci pour la remarque


---------------
Il vaut mieux se taire et passer pour un con, plutot que l'ouvrir et prouver que l'on en est bien un....
n°739381
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 10-10-2005 à 10:49:15  profilanswer
 

yohannsk a écrit :

lol j'avais pas vu, ça a mis plein de smileys.... :/
 
Merci pour ton conseil car en effet le probléme vient de là. Le script d'origine appelle un programme en perl, mais comme j'avais un doute je l'ai enlevé, je l'ai remis et ça marche pour le perl, ma syntaxe : perl /var/.../.../..../..../action.pl
 
Peux tu me dire s'il te plait comment lancer le shell?
 
J'ai mis ./..../...../..../.../action.sh mais ça marche pas lol....
 
La syntaxe ne doit pas étre bonne....
 
Merci par avnce  
 
SK


 
là ça va pas marcher :o
 
utilises des chemins absolus dans tes scripts si tu sais pas gérer l'endroit ou tu te trouves :o

n°739385
yohannsk
....
Posté le 10-10-2005 à 10:57:34  profilanswer
 

lol en fait c'était juste pour vous simplifier la lecture
J'ai mis des chemins absolu :
 
perl /var/www/html/awstats/wwwroot/cgi-bin/calvet/get_calvet.pl
 
Mais pour lancer un shell je ne connais pas la s'yntaxe et je n'arrive pas à la trouver quand on veut lancer un shell avec un chemin absolu...
 
./var/www/html/awstats/wwwroot/cgi-bin/calvet/efface.sh ????
 
Mais c'est pas ça....
 
Merci bien


---------------
Il vaut mieux se taire et passer pour un con, plutot que l'ouvrir et prouver que l'on en est bien un....
n°739386
jlighty
Posté le 10-10-2005 à 10:58:38  profilanswer
 

le "./" sert à indiquer le répertoire courant donc si tu veux exécuter ton script, retire le "."
fait ls -a dans un repertoire :
tu verras :
. -> répertoire courant
.. -> répertoire parent
 
donc si tu fais cd . -> tu restes dans le même repertoire
si tu fais cd .. -> tu vas dans le répertoire parent.


Message édité par jlighty le 10-10-2005 à 11:00:20
n°739400
yohannsk
....
Posté le 10-10-2005 à 11:26:42  profilanswer
 

Ca marche lol, merci pour la syntaxe, je savais tous ça mais j'avais pas fait le rapprochement lol. Je ne suis qu'un padawan linuxien...
 
J'ai une derniére petite question si je peux abuser de votre gentillesse et de votre savoir, voici mon script perl :
 
#!/usr/bin/perl
 
#Recupere les fichiers de logs cree il y a $n jours
use strict;     #Syntaxe stricte
use Net::FTP;   #charge le module netftp
use POSIX qw(strftime);  #charge la fonction strftime
use IO::Handle;   #charge le module IOHandle
 
STDOUT->autoflush(1);  #enlever le buffer sur stdout
my $n = 0;    
 
my ($adresse,$login,$pass,$rep) = ("#####","####","#####","#####" ); #définir 4 variables, mettre my pour dire que les variables sont locales
 
my $ftp = Net::FTP->new($adresse, Debug => 0) or die "Unable to connect to $adresse\n";  #crée un nouvel objet netftp qui s'appelera $ftp
$ftp->login($login,$pass) or die "Unable to log in : $ftp->message\n";  
#méthode login sur l'objet ftp
$ftp->cwd($rep) or die "Unable to cd to $rep : $ftp->message\n";
my @lines = $ftp->ls;   #récupére chaque ligne du tableau avec le nom du fichier
 
foreach(@lines) {
  my @ftime = localtime($ftp->mdtm($_));#récupère le temps de modification du fichier courant
  my @ltime = localtime(time-$n*86400);#récupére la date d'il y a n jours
  if ($ftime[5] == $ltime[5] && $ftime[4] == $ltime[4] && $ftime[3] ==
      $ltime[3]) {
    print "Downloading $_...";
    $ftp->get($_);   #téléchargement du fichier de logs en question
    print "done\n";
  }
}
 
$ftp->quit;
 
Il est assez simple à comprendre et fonctionne trés bien pour downloader des fichier de logs, mais il les écris dans le repertoire courant.... Pourriez vous m'indiquer que dois je rajouter et ou pour copier le résultat de mon download dans un autre rep que le rep courant?
 
Je vous envoie toute ma gratitude pour votre aide mes chers.
Et votre vitesse pour répondre n'a d'égal que votre dévotion....
 
SK!!


---------------
Il vaut mieux se taire et passer pour un con, plutot que l'ouvrir et prouver que l'on en est bien un....
n°739402
jlighty
Posté le 10-10-2005 à 11:33:42  profilanswer
 

quand tu fais ton get, tu peux spécifier ton fichier destination ou carrément un flux ouvert par fopen
http://kobesearch.cpan.org/htdocs/perl/FTP.html

mood
Publicité
Posté le 10-10-2005 à 11:33:42  profilanswer
 

n°739441
yohannsk
....
Posté le 10-10-2005 à 14:12:52  profilanswer
 

Merci les amis, vous m'avez fait gagner 2 jours de recherche, en tant qu'apprenti ingé, j'ai beaucoup à apprendre encore lol
 
Pour la solution, j'ai fait plus simple, j'ai fait un cd /xxxx dans le shell avant l'ouverture du script perl lol
 
On peur mettre un résolu devant le topic!!
 
La justice et la chance sont universel! Quelqu'un vous aidera forcement un jour!!  :hello:  :bounce:


---------------
Il vaut mieux se taire et passer pour un con, plutot que l'ouvrir et prouver que l'on en est bien un....

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs

  Les crons font des cronneries

 

Sujets relatifs
Recherche d'une font...Mes locales font n'importe quoi
Taille Font dans fluxboxlatex : charger une font (.tfm)
stations SGI + PC : les transferts réseau font planter IRIX.[Sendmail]bloquer les mails qui se font passer pour de linterne
[PB de font] Aquafont va me rendre fou :'(xmms + font petit
[Mandrake 10.0] Xfree ne se lance plus : font "fixed" non trouvée.[XFree => XORG] problème de font avec firefox | résolu
Plus de sujets relatifs à : Les crons font des cronneries


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR