diff --git a/gestion/gen_confs/autostatus.py b/gestion/gen_confs/autostatus.py
new file mode 100755
index 00000000..244ce502
--- /dev/null
+++ b/gestion/gen_confs/autostatus.py
@@ -0,0 +1,166 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-15 -*-
+
+import sys, os
+
+sys.path.append('/usr/scripts/gestion')
+from ldap_crans import crans, crans_ldap, strip_accents
+
+def autostatus (db) :
+ # fichier de l'autostatus
+ #file = open('/home/chove/hosts','w')
+ file = open('/etc/autostatus/hosts','w')
+
+ # machines à ne pas mettre dans l'autostatus
+ exclude = ["non-configure.wifi.crans.org"]
+
+ # machines crans
+ machines = crans().machines()
+
+ # tri des machines par type
+ bornes = {}
+ switchs = {}
+ serveurs = {}
+
+ # tri des machines
+ for m in machines :
+
+ # machine exclue
+ if m.nom() in exclude :
+ print "Exclusion de %s" % m.nom()
+ continue
+
+ # on ajoute au bon tableau les infos
+ if m.canal() :
+ # C'est une borne (format : index#~#nom#~#commentaire)
+ if m.info() :
+ # on regarde si c'est une borne de batiment
+ if ( m.info()[0][0:3] == "Au " ) and ( len(m.info()[0]) == 5 ) :
+ bornes[ "1-" + m.info()[0][4]+m.info()[0][3] ] = [ m.nom() , m.info()[0] ]
+ else :
+ bornes[ "2-" +m.info()[0] ] = [ m.nom() , m.info()[0] ]
+ else :
+ # on met les bornes non définies à la fin (ordre alphabétique)
+ bornes[ "3-" + m.nom() ] = [ m.nom() , "Inutilisee" ]
+
+ elif 'bat' in m.nom() or 'backbone' in m.nom() :
+ # C'est un switch
+
+ # on convertit le bat# en bat#-0
+ if not "-" in m.nom().split(".")[0] :
+ index = m.nom().split(".")[0] + "-0"
+ else :
+ index = m.nom().split(".")[0]
+
+ if m.info() :
+ switchs[ index ] = [ m.nom() , m.info()[0] ]
+ else :
+ switchs[ index ] = [ m.nom() , "Infos non disponiles" ]
+
+ else :
+ # C'est un serveur
+ if m.info() :
+ serveurs[ m.nom() ] = [ m.nom() , m.info()[0] ]
+ else :
+ serveurs[ m.nom() ] = [ m.nom() , "Infos non disponiles" ]
+
+ # début du fichier
+ file.write( """# NE PAS MODIFIER : fichié généré par /home/chove/autostatus.py
+# Format : name address depend,list contact description
+
+# routeurs vers l'extérieur #
+#############################
+
+%HTML:
Routeurs, dans l'ordre où ils sont entre le crans et l'extérieur : |
+
+komaz 138.231.136.4 none alerts@crans.org Notre routeur
+komaz-ext 138.231.135.6 komaz alerts@crans.org Patte externe de notre routeur.
+irts 138.231.135.5 komaz,komaz-ext alerts@crans.org Le routeur de l'ENS qui assure la liaison CRANS-ENS.
+irts-ext 138.231.132.5 komaz,komaz-ext,irts alerts@crans.org Patte externe du routeur IRTS.
+gateway.zrt 138.231.132.1 komaz,komaz-ext,irts,irts-ext alerts@crans.org Routeur de l'ENS
+kwai 138.231.176.9 komaz,komaz-ext,irts,irts-ext,gateway.zrt alerts@crans.org Routeur de l'ENS
+pioneer 138.231.176.1 komaz,komaz-ext,irts,irts-ext,gateway.zrt,kwai alerts@crans.org Le routeur principal de lENS, Interface interne.
+pioneer-ext 193.49.65.2 komaz,komaz-ext,irts,irts-ext,gateway.zrt,kwai,pioneer alerts@crans.org Le routeur principal de lENS, Interface externe.
+RenaterCachan 193.49.65.1 komaz,komaz-ext,irts,irts-ext,gateway.zrt,kwai,pioneer,pioneer-ext alerts@crans.org Routeur RENATER
+CachanCSSI1 193.51.181.186 komaz,komaz-ext,irts,irts-ext,gateway.zrt,kwai,pioneer,pioneer-ext,RenaterCachan alerts@crans.org Routeur RENATER
+CachanCSSI2 193.51.181.185 komaz,komaz-ext,irts,irts-ext,gateway.zrt,kwai,pioneer,pioneer-ext,RenaterCachan,CachanCSSI1 alerts@crans.org Routeur RENATER
+OrsayCSSI1 193.51.180.122 komaz,komaz-ext,irts,irts-ext,gateway.zrt,kwai,pioneer,pioneer-ext,RenaterCachan,CachanCSSI1,CachanCSSI2 alerts@crans.org Routeur RENATER
+OrsayCSSI2 193.51.180.121 komaz,komaz-ext,irts,irts-ext,gateway.zrt,kwai,pioneer,pioneer-ext,RenaterCachan,CachanCSSI1,CachanCSSI2,OrsayCSSI1 alerts@crans.org Routeur RENATER
+nriCSSI 193.51.179.41 komaz,komaz-ext,irts,irts-ext,gateway.zrt,kwai,pioneer,pioneer-ext,RenaterCachan,CachanCSSI1,CachanCSSI2,OrsayCSSI1,OrsayCSSI2 alerts@crans.org Routeur RENATER
+
+""" )
+
+ # serveurs du crans
+ file.write( """
+# serveurs du crans #
+#####################
+
+%HTML: |
+%HTML: Serveurs : |
+
+""" )
+ liste = serveurs.keys()
+ liste.sort()
+ for i in liste :
+ data = serveurs[i]
+ if ".wifi.crans.org" in i :
+ file.write ( data[0].split(".")[0] + ".wifi " + data[0] + " none nobody " + strip_accents ( data[1] + "\n" ).replace('_',' ') )
+ else :
+ file.write ( data[0].split(".")[0] + " " + data[0] + " none nobody " + strip_accents ( data[1] + "\n" ).replace('_',' ') )
+
+ # switchs
+ file.write ( """
+# switchs #
+###########
+
+%HTML: |
+%HTML: Switchs : |
+""" )
+ liste = switchs.keys()
+ liste.sort()
+ for i in liste :
+ data = switchs[i]
+ file.write ( data[0].split(".")[0] + " " + data[0] + " none nobody " + strip_accents ( data[1] + "\n" ).replace('_',' ') )
+
+ # bornes wifi
+ file.write ( """
+# bornes wifi #
+###############
+
+%HTML: |
+%HTML: Bornes wifi : |
+
+""" )
+ liste = bornes.keys()
+ liste.sort()
+ for i in liste :
+ data = bornes[i]
+ file.write ( data[0].split(".")[0] + " " + data[0] + " none nobody " + strip_accents ( data[1] + "\n" ).replace('_',' ') )
+
+ # services extérieurs
+ file.write ( """
+# Sites web et Services #
+#########################
+
+%HTML: |
+%HTML: Sites web et Services HORS de l'ENS: |
+%HTML: (21:FTP ; 80:HTTP ; 119:news ; 5190:port du protocole ICQ) |
+
+Jussieu:21 195.83.118.1 irts,irts-ext,komaz,komaz-ext,gateway.zrt,kwai,pioneer,pioneer-ext,RenaterCachan nobody Le serveur FTP de Jussieu. (France)
+Free:21 213.228.0.141 irts,irts-ext,komaz,komaz-ext,gateway.zrt,kwai,pioneer,pioneer-ext,RenaterCachan nobody Le serveur FTP de free. (France)
+Voila:80 195.101.94.80 irts,irts-ext,komaz,komaz-ext,gateway.zrt,kwai,pioneer,pioneer-ext,RenaterCachan nobody Est-ce que Voila fonctionne ? (France)
+Yahoo!:80 66.94.230.39 irts,irts-ext,komaz,komaz-ext,gateway.zrt,kwai,pioneer,pioneer-ext,RenaterCachan nobody Est-ce que Yahoo! fonctionne ? (USA)
+Altavista:80 216.155.200.155 irts,irts-ext,komaz,komaz-ext,gateway.zrt,kwai,pioneer,pioneer-ext,RenaterCachan nobody Est-ce que Altavista fonctionne ? (USA)
+""" )
+ file.close()
+
+ # on commit
+ os.popen( "cvs -Q -d '/usr/cvs-rep' commit -l -m 'Changement dans l autotstatus' /etc/autostatus/hosts" )
+
+if __name__ == '__main__' :
+
+ # base de données
+ base = crans_ldap()
+
+ # lancement du script
+ autostatus ( base )