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'
  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

fballa#ndimby#ndimby@refer.sn

fballa;206

   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)