1601
Commentaire: suppression
|
← Version 10 à la date du 2011-06-01 12:22:33 ⇥
5125
|
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
- 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
- Mise à jour salle
nfs# ls-machine > masalle nfs# dsh -f masalle -M -w 'aptitude -q -y update && aptitude -q -y full-upgrade'
éviter le -q qui risque de te cacher ce qui se passe... on sait jamais... -- ThomasNoël 2009-05-18 16:52:46
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
- 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
- Ajouter 28 utilisateurs avec auf-django-users
from aufusers import User for i in range(28): User(username="formation%s" % i, password="essayetjrs").save()
- Suppression
for u in range(28): ....: try: ....: User.objects.get(username="formation%d" % u).delete() ....: ....: except: ....: pass
- 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