Voici quelques scripts pour mettre en place un serveur IPERF public.
IPERF peut planter (certaines lignes de commandes), IPERF peut se bloquer (plutôt rare)
La seule solution que j'ai trouvé est la mise en place de script qui :
- vérifie chaque minute que IPERF est bien lancé
- Redémarre de force IPERF toutes les 6h (à 0h59, 6:59, 12h59, 18h59 dans mon exemple)
Pour Debian / Ubuntu, je recommande la version d'IPERF Iperf 2.0.2-4 et la 2.0.5-2.
Les autres versions sont à éviter.
Dans la contab d'un utilisateur crée spécialement pour iperf, je mets :
* * * * * /home/scripts/check_i-p-e-r-f.sh 2>&1
59 */6 * * * /home/scripts/restart_i-p-e-r-f.sh 2>&1
L'utilisateur crée spécialement pour IPERF (pour des raisons de sécurité) et le nom des scripts ne doivent pas contenir le mot IPERF sans quoi le ps x | grep iperf va dire que iperf est toujours en vie.
C'est la raison pour laquelle j'ai employé i-p-e-r-f à la place de iperf.
Ce n'est pas propre mais c'est fait rapidement et cela fonctionne.
le scrip check_i-p-e-r-f.sh
#!/bin/sh
if [ `ps x | grep iperf | grep -v grep | grep -vi screen | wc -l` = "0" ]
then
cd ~/scripts
date >> /home/log/i-p-e-r-f/plantage_i-p-e-r-f.log
date >> /home/log/i-p-e-r-f/log_i-p-e-r-f.log
#/usr/bin/iperf -s > /dev/null &
/usr/bin/iperf -s >> /home/log/i-p-e-r-f/log_i-p-e-r-f.log &
fi
le script restart_i-p-e-r-f.sh
#!/bin/sh
/bin/sleep 20
/usr/bin/killall iperf
/bin/sleep 1
/usr/bin/killall -9 iperf
/bin/sleep 1
if [ `ps x | grep iperf | grep -v grep | grep -vi screen | wc -l` = "0" ]
then
cd ~/scripts
date >> /home/log/i-p-e-r-f/restart_6h_i-p-e-r-f.log
date >> /home/log/i-p-e-r-f/log_i-p-e-r-f.log
#/usr/bin/iperf -s > /dev/null &
/usr/bin/iperf -s >> /home/log/i-p-e-r-f/log_i-p-e-r-f.log &
fi
Le premier Sleep est pour éviter la collision entre le script qui s’exécute toute les minutes et celui qui s’exécute toutes les 6h.
Le second est pour laisser une chance à IPERF de se fermer proprement avant le kill -9
Le troisième sleep est nécessaire (si on test immédiatement la présence du process après l'avoir killer, il peut pense que le process est toujours là.
Les scripts sont à adapter à votre besoin !
N'hésitez pas à me poser des questions sur IPERF.