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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Bash] Le C(r|)on et les scripts

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Bash] Le C(r|)on et les scripts

n°886771
Nethan
Posté le 15-02-2007 à 09:56:17  profilanswer
 

Bonjour,
 
Voilà, j'ai fait un script chargé de mettre à jour la base de données d'un Squidguard avec une liste récupérée sur Internet par wget.
 
L'ennui, est que le script fonctionne TRES BIEN manuellement, mais quand je le fais lancer par Cron à une heure fixe, rien ne fonctionne comme prévu.
 
On dirait que Cron est incapable d'aller au bout d'un script. J'ai mis des echo vers fichier partout pour définir où il s'arrête (je ne connais pas d'autres méthodes), ce qui a permis de voir qu'il refuse d'executer les commandes de fin, qui fonctionnent pourtant très bien en manuel... :heink:
 
Ceci, après un bon laps de temps (10mn), pour être certain que toutes les opérations soient faites (vu que la reconstruction prend du temps)
 
Le plus surprenant est la méthode de contournement. J'ai réalisé qu'exporter les messages de situation d'une commande (1> 2> ) sur /dev/null ou un fichier, forçait Cron à lancer les commandes qu'il n'avait pas envie de faire :pt1cable:
 
Ma question sera donc simple :
 
C'est quoi ce binz ? Je suis devenu fou ? [:anti] J'ai oublié quelque chose ? :heink:
 
Je met une copie du script à tout hasard ici. C'est une version sans echo mais avec le contournement.
 

Code :
  1. #!/bin/bash
  2. chemintravail="/root"
  3. emplacementdb="/usr/share/squidGuard-1.2.0/db"
  4. httpblacklist="ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz"
  5. nameblacklist="blacklists.tar.gz"
  6. utilisateurdb="squid"
  7. # Stopper le serveur histoire de...
  8. /etc/init.d/squid stop
  9. # Téléchargement de la blacklist Toulouse
  10. wget $httpblacklist -P $chemintravail/
  11. if [ $? -ne 0 ]; then
  12. echo "`date` : Le serveur de la blacklist n'a pas répondu à temps" >> /root/squidguard.log
  13. /etc/init.d/squid start
  14. exit
  15. fi
  16. # Effacement de l'ancienne base
  17. rm -Rf $emplacementdb/blacklists
  18. # Décompression du fichier
  19. tar -xzf $chemintravail/$nameblacklist -C $emplacementdb
  20. if [ $? -ne 0 ]; then
  21. echo "`date` : La décompression de la blacklist a échoué pour une raison inconnue" >> /root/squidguard.log
  22. exit
  23. fi
  24. # Effacement du fichier pour éviter les doublons que fabrique wget
  25. rm -f $chemintravail/$nameblacklist
  26. # Reconstruction de la base de SquidGuard avec la nouvelle blacklist
  27. /usr/bin/squidGuard -c /etc/squid/squidGuard.conf -C all -d $emplacementdb &> /dev/null
  28. if [ $? -ne 0 ]; then
  29. echo "`date` : La recompilation de la base de squidGuard a échoué" >> /root/squidguard.log
  30. exit
  31. fi
  32. # Règlage des droits de /db/ en récursif pour Squid
  33. chown -R $utilisateurdb:$utilisateurdb $emplacementdb
  34. # Redémarrage du serveur Squid
  35. /etc/init.d/squid start &> /dev/null
  36. # Indication dans un fichier externe que la procédure est finie
  37. echo "`date` : La base de SquidGuard à été mise à jour" >> /root/squidguard.log

mood
Publicité
Posté le 15-02-2007 à 09:56:17  profilanswer
 

n°886936
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 15-02-2007 à 14:44:27  profilanswer
 

Je me demande.... cron il a une variable PATH de définie ? Ya peut-être une différence d'environnement entre lui et toi quand tu tests ton script...


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°886952
Taz
bisounours-codeur
Posté le 15-02-2007 à 15:46:48  profilanswer
 

oui.


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

  [Bash] Le C(r|)on et les scripts

 

Sujets relatifs
Bash] Boucle while - export variable[BASH] Ajouter extension via feedback de commande file
[BASH] question sur un bout de script(BASH) Découper $path en plusieurs variables (debutant)
Extraire les mails de la file d'exim pour un utilisateur donnéScript bash qui marche à moitié
codes et scriptsBASH : ajouter des lignes en début de fichier
SH/BASH Petite question avec des -paramPour les pro du script bash - Supprimer les fichiers < 1k
Plus de sujets relatifs à : [Bash] Le C(r|)on et les scripts


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