Executer un script à intervalle de temps

Executer un script à intervalle de temps - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 26-08-2005 à 01:09:09    

Bonsoir à tous,
 
Je tourne actuellement sur une distribution Debian. Mon routeur est un D-link 624+. Ma carte wifi une MSI. Le module wifi est ndiswrapper.
 
Je souhaite exécuter un script toutes les minutes. En effet, ce script permet de connecter mon serveur au routeur. Car mon routeur a quelques coupures, de temps à autres, et déconnecte donc mon serveur du web. Je suis donc obligé de relancer le script manuellement.
 
J'ai essayé toutes les commandes possibles avec crontab. En effet je faisais :
 
crontab -e  --> pour editer la crontab en root.
 
*/1 * * * * /root/script_wifi
 
J'ai essayé plusieurs chemins, j'ai rajouté le .sh au script, mais toujours rien. Dans mes logs, je vois que la commande est exécutée toutes les minutes ( CMD (/root/script_wifi) ) , mais mon serveur ne se reconnecte pas au routeur.
 
Voici mon script_wifi:
 
#!/bin/sh
 
ifconfig wlan0 down
 
ifconfig wlan0 up
 
iwconfig wlan0 essid "mon_essid"
 
iwconfig wlan0 key "ma_key_wep"
 
dhclient wlan0
 
 
Merci d'avance.
 
 
 
http://kartzone.no-ip.org


Message édité par kartnico le 26-08-2005 à 04:56:03
Reply

Marsh Posté le 26-08-2005 à 01:09:09   

Reply

Marsh Posté le 26-08-2005 à 02:06:01    

chmod +x script_wifi.sh ???

Reply

Marsh Posté le 26-08-2005 à 03:33:50    

Son script et bel est bien éxécutable, quand il le lance manuellement il y a aucun problème :/


---------------
http://wiki.incloudus.com/display/DOC | http://blog.incloudus.com | http://wiki.goldzoneweb.info | http://www.stendhalclub.fr
Reply

Marsh Posté le 26-08-2005 à 03:34:16    

Oui je l'ai bien sur rendu exécutable. Car je peux l'exécuter manuellement.
 
Quand je le fais manuellement, tout fonctionne.
 
Mais avec crontab rien !

Reply

Marsh Posté le 26-08-2005 à 04:04:01    

cron envoie des mails au root (et ses alias), quand tu as ce genre d'erreurs, c'est important de les lire. Cela dit le DHCP est sensé gérer ce genre de situation tout seul.

Reply

Marsh Posté le 26-08-2005 à 04:57:59    

Bah j'ai aucun mail envoyé par crontab. Je suppose que ma commande est bonne. En ce qui concerne le DHCP apparement il ne fait rien.

Reply

Marsh Posté le 26-08-2005 à 09:19:25    

pour toutes tes commandes, iwconfig, ifconfig... rajoute le chemin complet ex:
ifconfig -> /sbin/ifconfig
ensuite tu peux aussi rediriger les erreurs dans un fichier
 
 
* * * * * /root/script_wifi  2> /root/log_script


Message édité par jlighty le 26-08-2005 à 09:20:13
Reply

Marsh Posté le 26-08-2005 à 11:01:49    

salut,
 
dans tes scripts, n'hésite pas à utiliser des chemins absolus:
/sbin/ifconfig au lieu de ifconfig tout seul ;)
 
Oliv'

Reply

Marsh Posté le 26-08-2005 à 14:00:54    

Je test :) . Mais je rappel que manuellement le script fonctionne.

Reply

Marsh Posté le 26-08-2005 à 14:03:27    

Question con, c'est dans quel crontab que tu as rajouté ta ligne, celle d'un utilisateur simple ou dans celui de root ?

Reply

Marsh Posté le 26-08-2005 à 14:03:27   

Reply

Marsh Posté le 26-08-2005 à 14:29:27    

Citation :

J'ai essayé toutes les commandes possibles avec crontab. En effet je faisais :
 
crontab -e  --> pour editer la crontab en root.


j'espère d'apès ce qu'il a dit, qu'il passait en root puis crontab -e

Reply

Marsh Posté le 26-08-2005 à 14:30:24    

kartnico a écrit :

Je test :) . Mais je rappel que manuellement le script fonctionne.


Crontab a toujours des soucis avec $PATH, j'ai toujours été obligé de mettre les noms absolus des fichiers.

Reply

Marsh Posté le 26-08-2005 à 14:38:17    

ce qui selon moi est tout à fait normal vu que crontab n'est pas censé avoir de variable d'environnement... alors que quand tu éxécutes un script en user, le script "hérite" des variables d'environnement de l'utilisateur....

Reply

Marsh Posté le 26-08-2005 à 14:47:11    

Je suis en root pour faire crontab -e

Reply

Marsh Posté le 26-08-2005 à 14:50:06    

et ça marche maintenant ?

Reply

Marsh Posté le 27-08-2005 à 02:35:35    

Nan ça foire !

Reply

Marsh Posté le 27-08-2005 à 02:35:59    

Bizarre, car je le répète, le script fonctionne manuellement.

Reply

Marsh Posté le 27-08-2005 à 04:05:24    

je le répète : lis tes mails :o

Reply

Marsh Posté le 27-08-2005 à 09:36:53    

as tu redirigé les erreurs dans un fichier ?


Message édité par jlighty le 27-08-2005 à 09:37:05
Reply

Marsh Posté le 27-08-2005 à 14:06:19    

Taz --> Je n'ai aucun mail.
 
Jlighty --> Nan je termine sur /dev/null.
 
Par contre je consulte souvent mes logs. Et il ne se passe rien. Hier j'ai fais deux trois modifications, et le dhcp se met en route toutes les 2 minutes, et il me dit qu'il ne trouve pas d'IP sur l'interface lo . Mais moi je m'en fou de cette interface. Je veux qu'il cherche pour la wlan0 .


Message édité par kartnico le 27-08-2005 à 14:06:45
Reply

Marsh Posté le 27-08-2005 à 14:08:49    

kartnico a écrit :

Taz --> Je n'ai aucun mail.
 
Jlighty --> Nan je termine sur /dev/null.
 
Par contre je consulte souvent mes logs. Et il ne se passe rien. Hier j'ai fais deux trois modifications, et le dhcp se met en route toutes les 2 minutes, et il me dit qu'il ne trouve pas d'IP sur l'interface lo . Mais moi je m'en fou de cette interface. Je veux qu'il cherche pour la wlan0 .


pourquoi rediriger les erreurs dans /dev/null ? si tu veux savoir pourquoi ça ne marche pas, redirige les erreurs dans un fichier (valide)

Reply

Marsh Posté le 27-08-2005 à 14:14:32    

Mais je l'ai fais. Le problème c'est qu'il n'y a pas d'erreur. La commande à l'air d'être exécutée. Mais le script ne fonctionne pas.
 
Voici un screen : Sur ce screen, j'ai retiré ma crontab.C'est juste pour vous montrer ce que fais mon dhcp.
 
http://kartzone.free.fr/logs.JPG

Reply

Marsh Posté le 27-08-2005 à 14:43:00    

contenu de la crontab ?
* * * * * /root/script_wifi > fichier-trie 2>&1

Reply

Marsh Posté le 27-08-2005 à 22:52:28    

Je vais mettre cela dans ma crontab. Je te fais un screen de la log d'ici cette nuit.
 
+

Reply

Marsh Posté le 27-08-2005 à 22:54:51    

pas besoin de faire un screen, un copier/coller du texte suffira ;)


Message édité par jlighty le 28-08-2005 à 21:03:07
Reply

Marsh Posté le 27-08-2005 à 22:58:31    

;) tkt :p  En attendant voici un truc qui devrait te rassurer de ma bonne foie :
 
http://nbjnicojulie.free.fr/2.JPG
 
http://nbjnicojulie.free.fr/3.JPG


Message édité par kartnico le 27-08-2005 à 22:58:46
Reply

Marsh Posté le 27-08-2005 à 23:49:49    

Alors !
 
J'ai changé la configuration de mon routeur. Et plus exactement le DHCP serveur. Il attribut une adresse IP fixe à l'adresse MAC du serveur. Apparement, maintenant le script exécuté par la crontab fonctionne.
 
Donc je récapitule:
 
crontab éditée en root: crontab -e.
 
* * * * * /root/script_wifi.sh > log_wifi 2>&1
 
Fichier script_wifi.sh:
 
/sbin/ifconfig wlan0 down
/sbin/ifconfig wlan0 up
/sbin/iwconfig wlan0 essid "mon_essid"
/sbin/iwconfig wlan0 key "ma_key"
/sbin/dhclient wlan0
 
 
Merci à tous. jlighty et taz surtout :)

Reply

Marsh Posté le 28-08-2005 à 21:00:11    

si cron échoue, tu as forcément un mail.

Reply

Marsh Posté le 28-08-2005 à 21:01:49    

sauf s'il a mis sa vairable MAILTO à "" [:dawa]

Reply

Marsh Posté le 28-08-2005 à 23:03:09    

oki :D . Mais c'est bon cela fonctionne now !

Reply

Marsh Posté le 29-08-2005 à 09:30:02    

l0ky a écrit :

sauf s'il a mis sa vairable MAILTO à "" [:dawa]


When executing commands, any output is mailed to the owner of the crontab (or to the user named in the MAILTO  environment variable  in  the  crontab, if such exists).


 
un mail est toujours envoyé.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed