Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[un peu long] Debian, vsftpd et script "croné"

3 réponses
Avatar
erion
j'ai un pb avec le script croné (qui suit) et qui est censé vérifier
toutes les 5mn mon adresse IP sur checkip.dyndns.org. Au cas où
l'adresse de mon routeur ait changé, ez-ipupdate l'envoi comme il se
doit et tout se passe très bien. Par contre j'ai un petit souçi au
niveau de vsftpd : afin d'activer le mode passif pour d'éventuels
clients derrière un routeur, je dois indiquer mon adresse IP au dit
client et donc faire en sorte que le fichier /etc/vsftpd.conf soit
modifié dès que change mon IP ; modifié donc en même temps que l'envoi
via ez-ipupdate. Le script fonctionne, le fichier de conf est
correctement modifié avec la bonne IP renouvelée. Seulement voilà : le
daemon n'a pas l'air de l'avoir pris en compte car impossible de se
connecter au ftp : il renvoi au client l'ancienne IP ! Et pourtant j'ai
envoyé la sortie de la commande /etc/init.d/vsftpd reload vers
/var/log/xxx, sortie correcte qui m'indique que le fichier de conf a
bien été relu !
NB :
- ca fait pareil avec un restart
- le reload fonctionne bien lorsqu'il est lancé, "à la main", et
également via un script dans lequel il n'y a pas la partie concernant la
mise-à-jour dyndns.
- un extrait de auth.log : la session root pour cron s'ouvre et se ferme
régulièrement, toutes les 5mn. Sauf lors du changement d'IP : la session
s'ouvre mais ne se ferme pas. Cela dénote-t-il un problème avec cron ?
Et bien-sûr comment le résoudre ? :-)
(cron) session opened for user root by (uid=0)
(cron) session closed for user root
(cron) session opened for user root by (uid=0)
(cron) session opened for user mail by (uid=0)
(cron) session closed for user mail
(cron) session opened for user root by (uid=0)

J'en perds mon latin... Et vous ? Une idée ? suis-je dans le bon forum ?
Merci et bonne journée.


NB2 : Je poste ici car pas de réponse sur fr.comp.os.linux.configuration

#!/bin/bash
# Auteurs :lrj2@pcguys.com et Tichou (fr.comp.os.linux.configuration)
# The scripts used in this How-To are based on scripts submited by
#philliptemple and REM_simone, also in this thread.
#http://www.gusnet.cx:8080/gus/proj/ez-ipupdate/userdoc.php?userdoc_action=fullcomment&commentid=110
CONF=/etc/vsftpd.conf
wget --quiet -O - http://checkip.dyndns.org | awk '{print $6}' | sed -e
's/<\/body><\/html>.*//' > /tmp/new_ip
if [ -n "`cat /tmp/new_ip`" ]
then
if [ -n "`diff --brief /tmp/old_ip /tmp/new_ip`" ]
then
/usr/sbin/ez-ipupdate --address `cat /tmp/new_ip` -c
/etc/ez-ipupdate/ez-ipupdate.conf
#Mise à jour de vsftpd
IP=`cat /tmp/new_ip`
if [ -f $CONF ]
then
/bin/sed -e "s/pasv_address=.*/pasv_address=$IP/" < $CONF > $CONF.tmp
mv $CONF.tmp $CONF
/etc/init.d/vsftpd restart >> /var/log/xxxx <----- c'est là que ça
coince
#Log MAJ
date +"%b %e %k:%M:%S dyndns[$$] : %s $IP" >> /var/log/xxxx
#Envoie Mail (?)
EMAIL="xxxxx"
[-n "$EMAIL"] && echo -e "Adresse IP : $IP\nRésultat : $RESULT" \|>
/usr/bin/mail -s "Mise à jour Dyndns" $EMAIL

fi
fi
fi

cp -f /tmp/new_ip /tmp/old_ip
# end of file

3 réponses

Avatar
Stephane Chazelas
2004-06-08, 08:29(+02), erion:
[...]
- le reload fonctionne bien lorsqu'il est lancé, "à la main", et
également via un script dans lequel il n'y a pas la partie concernant la
mise-à-jour dyndns.


Peut-etre une histoire d'environnement (ton script lancé par
cron herite de l'environnement du daemon de cron qui doit etre
assez minimaliste, il manque peut-etre des variables necessaires
au script de reload pour qu'il fonctionne correctement.

Qu'est-ce que fait ce script de reload? Est-ce que tu as un
serveur DNS local? Comment se fait la resolution de noms sur ton
systeme (dns, ldap, nis+, /etc/hosts...)?

- un extrait de auth.log : la session root pour cron s'ouvre et se ferme
régulièrement, toutes les 5mn. Sauf lors du changement d'IP : la session
s'ouvre mais ne se ferme pas. Cela dénote-t-il un problème avec cron ?


S'il y a un changement d'IP, peut-etre il y a un probleme lié a
utmp.

Ton message est un peu long. Tu gagnerais des lecteurs a reduire
ton probleme a son expression minimale (j'ai pas tout lu).

--
Stephane

Avatar
erion

2004-06-08, 08:29(+02), erion:
[...]



Peut-etre une histoire d'environnement (ton script lancé par
cron herite de l'environnement du daemon de cron qui doit etre
assez minimaliste, il manque peut-etre des variables necessaires
au script de reload pour qu'il fonctionne correctement.

Qu'est-ce que fait ce script de reload? Est-ce que tu as un
serveur DNS local? Comment se fait la resolution de noms sur ton
systeme (dns, ldap, nis+, /etc/hosts...)?


Salut,

merci de me répondre, je commencais à désespérer !
Ce script sert à modifier un option de configuration de /etc/vsftpd.conf
et redémarrer le daemon. Et envoyer l'IP de mon routeur (dynamique) à
dyndns.org via ez-ipupdate. Cette dernière partie fonctionne très bien.
Pas de serveur DNS local, la résolution de noms locaux se fait via un
serveur wins (samba) et hosts.

- un extrait de auth.log : la session root pour cron s'ouvre et se ferme
régulièrement, toutes les 5mn. Sauf lors du changement d'IP : la session
s'ouvre mais ne se ferme pas. Cela dénote-t-il un problème avec cron ?



S'il y a un changement d'IP, peut-etre il y a un probleme lié a
utmp.



Je vais chercher sur google késako "utmp".
NB : je viens de m'apercevoir que le pb semble lié à cron : un simple
/etc/init.d/vsftpd reload croné à deux heures différentes ne fonctionne
pas. Je vais tenter un killall -HUP vsftpd et sinon voir du côté de fcron.
Des expériences ?

Ton message est un peu long. Tu gagnerais des lecteurs a reduire
ton probleme a son expression minimale (j'ai pas tout lu).

Ben c pour ça que j'ai prévenu ;-) Et je souhaitais être le plus précis

possible. Désolé. Je ne mettrais plus les scripts que sur demande. C'est
noté.
Merci, et bonne journée.


Avatar
erion

j'ai un pb avec le script croné (qui suit) et qui est censé vérifier
toutes les 5mn mon adresse IP sur checkip.dyndns.org. Au cas où
l'adresse de mon routeur ait changé, ez-ipupdate l'envoi comme il se
doit et tout se passe très bien. Par contre j'ai un petit souçi au
niveau de vsftpd : afin d'activer le mode passif pour d'éventuels
clients derrière un routeur, je dois indiquer mon adresse IP au dit
client et donc faire en sorte que le fichier /etc/vsftpd.conf soit
modifié dès que change mon IP ; modifié donc en même temps que l'envoi
via ez-ipupdate. Le script fonctionne, le fichier de conf est
correctement modifié avec la bonne IP renouvelée. Seulement voilà : le
daemon n'a pas l'air de l'avoir pris en compte car impossible de se
connecter au ftp : il renvoi au client l'ancienne IP ! Et pourtant j'ai
envoyé la sortie de la commande /etc/init.d/vsftpd reload vers
/var/log/xxx, sortie correcte qui m'indique que le fichier de conf a
bien été relu !
NB :
- ca fait pareil avec un restart
- le reload fonctionne bien lorsqu'il est lancé, "à la main", et
également via un script dans lequel il n'y a pas la partie concernant la
mise-à-jour dyndns.



Salut,

il vaut mieux un killall -HUP trucbidule qu'un
/etc/init.d/trucbidule restart ou reload dans un cron. Ca marche
beaucoup mieux !
Verdict définitif dans quelques jours.
Merci encore à tous, j'espère que cette fois est la bonne !