Bienvenue visiteur (Inscription |  Connexion)
Qui est en ligne ?
Il y a : 19 utilisateurs en ligne, consultez le détail
Auteur Message
Badam
#0 Message posté le : 16-10-2007 à 14:20:54


Petit scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 16-10-2007
Nombre de messages : 6
Bonjour,

J'ai transformé ma machine DEBIAN en passerelle.
À présent je souhaiterai arrêter le service de façon automatique, donc je me suis tourner vers crontab.

Comme le veut le système j'ai effectué ceci :

crontab -e


Ensuite, sachant que je veux arrêter la passerelle tous les jours à 22h30

22 30 * * * /root/iptables.sh


Voci le script en question

#!/bin/sh

/etc/init.d/maginot.sh stop


Via Webmin, lorsque je choisis de lancer la commande directement ça marche, le script est correctement exécuter.

Néanmoins lorsque c'est fait de façon automatique, ça ne marche pas. Je consulte le /var/log/syslog et ce dernier m'affiche que la commande s'est bien déroulée

Évidemment j'ai rendu exécutable le script
chmod +x iptables.sh


Est ce dû à une mauvaise procédure ou une erreur de syntaxe de la part du script ?

MERCI DE VOTRE INVESTISSEMENT

--Message édité par Badam le 16-10-2007 à 14:24:43--


-------------------------------------
Simplement amoureux de la ligne de commande
arnaud
#1 Message posté le : 16-10-2007 à 17:28:05


Elfe


Forum : Modérateur
Association :
Arrivé(e) le : 09-04-2003
Nombre de messages : 3068
Essaie d'intervertir heure et minutes.

Un truc que j'ai mis dans mon crontab et qui est bien pratique :

#        minute (0...59)

#        |     heure (0...23)

#        |     |     jour (1...31)

#        |     |     |     mois (1...12)

#        |     |     |     |     jour de la semaine (0...6 avec 0=Dimanche)

#        |     |     |     |     |       commandes



        30    22     *     *     *        /root/iptables.sh


-------------------------------------
« Quand les mouettes ont pied, il est temps de virer de bord »
Linux User 257612
Badam
#2 Message posté le : 16-10-2007 à 18:52:20


Petit scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 16-10-2007
Nombre de messages : 6
Merci bien pour l'astuce

Mais même en permuttant le 22 et 30.
J'ai toujours le problème

30 22 * * * /root/iptables.sh


MERCI POUR VOTRE INVESTISSEMENT

-------------------------------------
Simplement amoureux de la ligne de commande
arnaud
#3 Message posté le : 16-10-2007 à 20:01:27


Elfe


Forum : Modérateur
Association :
Arrivé(e) le : 09-04-2003
Nombre de messages : 3068
Et en rajoutant l'utilisateur root qui lance le bazar ?

]30 22 * * * root /root/iptables.sh


-------------------------------------
« Quand les mouettes ont pied, il est temps de virer de bord »
Linux User 257612
Badam
#4 Message posté le : 16-10-2007 à 22:48:57


Petit scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 16-10-2007
Nombre de messages : 6
Rien a faire j'ai toujours le même problème

Merci de ton aide

Je continue a chercher

-------------------------------------
Simplement amoureux de la ligne de commande
Badam
#5 Message posté le : 16-10-2007 à 23:13:11


Petit scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 16-10-2007
Nombre de messages : 6
Même avec une simple commande tel que
30 23 * * * ifdown eth1


Il y a aucun résultats

-------------------------------------
Simplement amoureux de la ligne de commande
Badam
#6 Message posté le : 16-10-2007 à 23:51:37


Petit scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 16-10-2007
Nombre de messages : 6
J'ai du nouveau, par hasard je me sui loggué sous un user et par la suite j'ai vu que j'avais un email, voir même 13.

C'était tout simplement des logs d'erreur

/etc/init.d/flush.sh : line5: iptables: command not found

Maginot-firewall stopped

et ce 15 fois pour chaque ligne du script.

En effet :
#!/bin/sh

#Flush de toutes les règles



#On accepte tout pour la table FILTER (ACCEPT par défaut)

iptables -P INPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -P OUTPUT ACCEPT



#on accepte tout pour la table NAT (ACCEPT par défaut)

iptables -t nat -P PREROUTING ACCEPT

iptables -t nat -P POSTROUTING ACCEPT

iptables -t nat -P OUTPUT ACCEPT



#flush des règles existantes pour les tables NAT et FILTER

iptables -F

iptables -t nat -F



#on efface les chaînes qui ne sont pas à défaut pour les mêmes tables

iptables -X

iptables -t nat -X


Car l'arrêt de iptables entraîne ce script : vidage des tables.

Donc c'est à moi de bricoler un script pour crontab

Je vous tiens au courant

MERCI POUR VOTRE INVESTISSEMENT

--Message édité par Badam le 17-10-2007 à 07:54:24--


-------------------------------------
Simplement amoureux de la ligne de commande
tamiel
#7 Message posté le : 17-10-2007 à 10:08:44


Hobbit


Forum : Inscrit
Association :
Arrivé(e) le : 17-10-2003
Nombre de messages : 1068
/sbin/iptables

ou tu set le PATH au début du script correctement.

La crontab a son propre environnement de travail et n'inclut pas /sbin dans son PATH.

Donc soit mettre un PATH correcte dans le script, soit modifier l'environnement de cron dans /etc/crontab .

-------------------------------------
If you don't know, ask manpage !
Badam
#8 Message posté le : 17-10-2007 à 10:21:59


Petit scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 16-10-2007
Nombre de messages : 6
Merci pour l'info, je suis actuellement au taff, je vous tiens au courant ce soir

-------------------------------------
Simplement amoureux de la ligne de commande
Badam
#9 Message posté le : 17-10-2007 à 18:32:59


Petit scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 16-10-2007
Nombre de messages : 6
R É S O L U

J'ai médité sur la réponse de Tamiel.

Voici un de mes mail d'erreur :


Content-Type: text/plain; charset=ANSI_X3.4-1968

X-Cron-Env: <SHELL=/bin/sh>

X-Cron-Env: <HOME=/root>

X-Cron-Env: <PATH=/usr/bin:/bin>

X-Cron-Env: <LOGNAME=root>

Message-Id: <E1IhtqY-0000nd-0X@myunix.XXXXXX.fr>

Date: Tue, 16 Oct 2007 23:21:02 +0200

Status: RO



/bin/sh: ifdown: command not found



la ligne
X-Cron-Env: <PATH=/usr/bin:/bin>


Le PATH, il va chercher les commandes dans ce PATH. Donc j'ai copié betement ifup et ifdown dans le repertoire en question.

MERCI POUR VOTRE INVESTISSEMENT ET À TAMIEL

-------------------------------------
Simplement amoureux de la ligne de commande
tamiel
#10 Message posté le : 18-10-2007 à 09:42:23


Hobbit


Forum : Inscrit
Association :
Arrivé(e) le : 17-10-2003
Nombre de messages : 1068
Il vaut mieux éviter de copier les binaires directement pour pallier un problème de PATH.

Le mieux est d'éditer /etc/crontab
et de mettre PATH comme ceci :
PATH=/usr/bin:/bin:/sbin:/usr/sbin

Puis redémarrer crond :
/etc/init.d/crond restart

:)

-------------------------------------
If you don't know, ask manpage !