Modifications entre les versions 7 et 10 (s'étendant sur 3 versions)
Version 7 à la date du 2009-06-29 15:57:07
Taille: 1601
Commentaire: suppression
Version 10 à la date du 2011-06-01 12:22:33
Taille: 5125
Commentaire:
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
== Scripts de J. qui marchent == == Scripts ==
Ligne 60: Ligne 60:

== Script d'info des abonnées sans mailman ==
{{{#!python
# -*- encoding:utf-8 -*-

import smtplib
import locale
from email.mime.text import MIMEText
from aufusers import User
from datetime import date
from datetime import timedelta
import time

mail = """

Ici on écrit le mail d'information

"""

locale.setlocale(locale.LC_ALL, '')
s = smtplib.SMTP("localhost")
d = date.today()
for u in User.objects.filter(source="LOCAL"):
    utilisateur={'username':u.username.decode('iso-8859-1').encode('utf-8')}
    # 'gecos':u.gecos.decode("utf8").encode("latin1").decode("utf8")}
    msg = mail % utilisateur
    msg = MIMEText(msg,_charset='UTF-8')
    msg['Subject'] = '[INFORMATION] Attention au piratage'
    msg['From'] = 'Abonnements Campus numerique francophone de Dakar <abonnement@refer.sn>'
    msg['To'] = "%s@refer.sn" % u.username
    if u.active():
        s.sendmail("abonnement@refer.sn", "%s@refer.sn" % u.username, msg.as_string())
    # un petit timeout entre les envoies de mail
        time.sleep(5)
        print u.username.decode('iso-8859-1').encode('utf-8')

s.quit()

}}}

== Script de migration contact Horde vers Roundcube ==

 # on extrait de la base horde, la table turba_objects > listecontacts

 # on modifie le fichier pour qu'il ressemble à login#Nom du contact#mail

{{{

fballa#ndimby#ndimby@refer.sn

}}}

 # On extrait aussi les id_contacts de la table horde_users > listecontact_id

{{{
fballa;206
}}}
 
 # Enfin le petit script qui fait la moulinette
{{{#!python

import os, sys, MySQLdb

connexion = MySQLdb.connect('localhost', 'root', 'passMysql', 'roundcube')

fichier_contacts = open('/root/listecontacts','r')

curseur = connexion.cursor()

for ligne in fichier_contacts:
   username = ligne.split('#')[0]
   contact = ligne.split('#')[1]
   email = ligne.split('#')[2]
   command = """grep -i "%s;" listecontact_id | cut -d ";" -f2 > /tmp/resultat""" % (username)
   os.system(command)
   resultat = open('/tmp/resultat','r')
   user_id = resultat.readline().splitlines()[0]
   resultat.close()
   requete = """ insert into contacts (name, email, user_id) values ("%s", "%s", "%s" ) """ % (contact, email, user_id)
   print requete
   curseur.execute(requete)
   connexion.commit()
   curseur.close()
   connexion.close()
   fichier_contacts.close()

}}}


== Récupérer les addresses mail depuis un spreadsheet googledoc ==

Prérequis

{{{
aptitude install python-gdata
wget http://gdatacopier.googlecode.com/files/gdatacopier-2.1.2.tgz
tar -xzvf gdatacopier-2.1.2.tgz
}}}

La grousse bidouille

{{{

#!/bin/bash

MOIS=$(date +"%B")
NOW=$(date +"%j")
CNF='/home/ndimby/auf/usagers-cnf'

cd $CNF
gcp.py -f csv -o -u lambda@gmail.com:/spreadsheet/all/$MOIS* $CNF
if [ -e old ]; then
        cut -d',' -f4 $CNF/*$MOIS*.csv | grep -v "E-mail" > $CNF/$NOW
        diff -n old $NOW | grep "@" > /tmp/diffusagers
        mv -v $NOW old
else
echo "pas de comparaison possible"
        cut -d',' -f4 $CNF/*$MOIS* | grep -v "E-mail" > $CNF/"old"
fi

# Envoie sur le serveur de mail pour traitement
if [ -s /tmp/diffusagers ]; then
        scp /tmp/diffusagers mail-dakar.sn.auf.org:/tmp/diffusagers
        ssh root@mail-dakar.sn.auf.org add_members -r /tmp/diffusagers --admin-notify=n --welcome-msg=n Usager-cnfdakar
        ssh root@mail-dakar.sn.auf.org rm -v /tmp/diffusagers
else
echo "Fichier vide, rien à ajouter dans la mailing liste"
fi

}}}

Scripts

  1. Lister les machines

/usr/local/bin/ls-machines

 #!/bin/bash

for SALLE in $@ ; do
    fping -c 1  -g 192.168.$SALLE.min 192.168.$SALLE.max 2>/dev/null  |awk '{print "root@" $1}'
done
  1. Mise à jour salle

  nfs# ls-machine > masalle
  nfs# dsh -f masalle -M -w 'aptitude -q -y update && aptitude -q -y full-upgrade'
  • {i} éviter le -q qui risque de te cacher ce qui se passe... on sait jamais... -- ThomasNoël 2009-05-18 16:52:46

  • {i} faire d'abord la m-à-j d'une machine "à la main", sans le -y, pour voir si le -y ne pose pas de problème -- ThomasNoël 2009-05-18 16:52:46

  1. Fixé les adresses ip sur le serveurs - Recupérer les adresses mac et etiquetté les machines - Copier l'output dans dhcpd.conf
    • m=101
      for i in $(cat cdr.macs)
      do
         echo "host cdr-$m { hardware ethernet $i; fixed-address cdr-$m.cnfd.; }"    # on met le nom de la machine, pas son IP
         m=$((m+1))
      done
  2. Ajouter 28 utilisateurs avec auf-django-users
    from aufusers import User
    for i in range(28):
        User(username="formation%s" % i, password="essayetjrs").save()
  3. Suppression
    for u in range(28):
       ....:     try:
       ....:         User.objects.get(username="formation%d" % u).delete()
       ....:         
       ....:     except:
       ....:         pass
  4. Vérification
    from aufusers import User
    for u in User.objects.filter(username__startswith="formation"):
        print "%s expire le %s" % (u.username, u.expire)

Script d'info des abonnées sans mailman

   1 # -*- encoding:utf-8 -*-
   2 
   3 import smtplib
   4 import locale
   5 from email.mime.text import MIMEText
   6 from aufusers import User
   7 from datetime import date
   8 from datetime import timedelta
   9 import time
  10 
  11 mail = """
  12 
  13 Ici on écrit le mail d'information
  14 
  15 """
  16 
  17 locale.setlocale(locale.LC_ALL, '')
  18 s = smtplib.SMTP("localhost")
  19 d = date.today()
  20 for u in User.objects.filter(source="LOCAL"):
  21     utilisateur={'username':u.username.decode('iso-8859-1').encode('utf-8')}
  22     #             'gecos':u.gecos.decode("utf8").encode("latin1").decode("utf8")}
  23     msg = mail % utilisateur
  24     msg = MIMEText(msg,_charset='UTF-8')
  25     msg['Subject'] = '[INFORMATION] Attention au piratage'
  26     msg['From'] =  'Abonnements Campus numerique francophone de Dakar <abonnement@refer.sn>'
  27     msg['To'] = "%s@refer.sn" % u.username
  28     if u.active():
  29         s.sendmail("abonnement@refer.sn", "%s@refer.sn" % u.username, msg.as_string())
  30     # un petit timeout entre les envoies de mail
  31         time.sleep(5)
  32         print u.username.decode('iso-8859-1').encode('utf-8')
  33 
  34 s.quit()

Script de migration contact Horde vers Roundcube

  • # on extrait de la base horde, la table turba_objects > listecontacts # on modifie le fichier pour qu'il ressemble à login#Nom du contact#mail

fballa#ndimby#ndimby@refer.sn
  • # On extrait aussi les id_contacts de la table horde_users > listecontact_id

fballa;206
  • # Enfin le petit script qui fait la moulinette

   1 import os, sys, MySQLdb
   2 
   3 connexion = MySQLdb.connect('localhost', 'root', 'passMysql', 'roundcube')
   4 
   5 fichier_contacts =  open('/root/listecontacts','r')
   6 
   7 curseur = connexion.cursor()
   8 
   9 for ligne in fichier_contacts:
  10    username = ligne.split('#')[0]
  11    contact = ligne.split('#')[1]
  12    email = ligne.split('#')[2]
  13    command = """grep -i "%s;" listecontact_id | cut -d ";" -f2 > /tmp/resultat""" % (username)
  14    os.system(command)
  15    resultat = open('/tmp/resultat','r')
  16    user_id =  resultat.readline().splitlines()[0]
  17    resultat.close()
  18    requete = """ insert into contacts (name, email, user_id) values ("%s", "%s", "%s" ) """ % (contact, email, user_id)
  19    print requete
  20    curseur.execute(requete)
  21    connexion.commit()   
  22    curseur.close()
  23    connexion.close()
  24    fichier_contacts.close()

Récupérer les addresses mail depuis un spreadsheet googledoc

Prérequis

aptitude install python-gdata
wget http://gdatacopier.googlecode.com/files/gdatacopier-2.1.2.tgz
tar -xzvf gdatacopier-2.1.2.tgz

La grousse bidouille

MOIS=$(date +"%B")
NOW=$(date +"%j")
CNF='/home/ndimby/auf/usagers-cnf'

cd $CNF
gcp.py -f csv -o -u lambda@gmail.com:/spreadsheet/all/$MOIS* $CNF
if [ -e old ]; then
        cut -d',' -f4 $CNF/*$MOIS*.csv | grep -v "E-mail"  > $CNF/$NOW
        diff -n old $NOW | grep "@" > /tmp/diffusagers
        mv -v $NOW old
else 
echo "pas de comparaison possible"
        cut -d',' -f4 $CNF/*$MOIS* | grep -v "E-mail"  > $CNF/"old"
fi

# Envoie sur le serveur de mail pour traitement
if [ -s /tmp/diffusagers ]; then
        scp /tmp/diffusagers mail-dakar.sn.auf.org:/tmp/diffusagers
        ssh root@mail-dakar.sn.auf.org add_members -r /tmp/diffusagers --admin-notify=n --welcome-msg=n Usager-cnfdakar
        ssh root@mail-dakar.sn.auf.org rm -v /tmp/diffusagers
else
echo "Fichier vide, rien à ajouter dans la mailing liste"
fi

NdimbyAndriantsoavina/NotesPerso/Scripts (dernière édition le 2011-06-01 12:22:33 par NdimbyAndriantsoavina)