vieux trucs

This commit is contained in:
Daniel STAN 2015-08-31 12:17:04 +02:00
parent 587b76d930
commit c9b3198e26
4 changed files with 8 additions and 6 deletions

101
archive/gestion/mail-all.py Executable file
View file

@ -0,0 +1,101 @@
#!/bin/bash /usr/scripts/python.sh
# -*- coding: utf-8 -*-
# Envoi d'un mail donné à certains adherents
# Premier parametre : critere de recherche
# Second parametre, fichier à envoyer
import smtplib, sys, os, ldap_crans, time, socket, commands
from email_tools import format_sender
from affich_tools import cprint
def postconf(i):
"Fixe la fréquence d'envoi maximale par client (en msg/min)"
os.system("/usr/sbin/postconf -e smtpd_client_message_rate_limit=%s" % i)
os.system("/etc/init.d/postfix reload")
if __name__ == "__main__":
if len(sys.argv) != 3:
cprint(u"""Usage:
Ce script permet d'envoyer un mail à toute une catégorie d'adhérents.
Le premier paramètre est le critère de recherche :
paiement=ok pour les adhérents en règle
paiement=ok&paiement!=2004 pour ceux qui n'ont pas encore payé pour cette année
chbre=????&paiement=ok pour ceux dont la chambre est inconnue
paiement=ok&carteEtudiant!=2004 pour ceux qui n'ont pas de carte d'étudiant
Le second paramètre est un fichier texte qui contient le message à envoyer. Il
doit également contenir les entêtes, à l'exception du destinataire qui sera rajouté
par le script.
/!\ Ce script ne demande aucune confirmation, il faut veiller à
vérifier avec whos que l'on cible bien les utilisateurs que l'on
veut. Et si on veut vérifier que le mail a une bonne tête on se
l'envoie d'abord en mettant login=machin comme critère de
recherche.
/!\ Ce script a pour but de spammer, et spammer c'est mal. Il faut
donc contourner les limitations qui ont été mises en place au
Cr@ns. Si plus de 10 mails doivent être envoyés, il faut le faire
depuis redisdead, et en ayant pensé à désactiver la limite de mails
par minute :
# postconf -e 'smtpd_client_message_rate_limit = 0'
# service postfix reload
""")
sys.exit(0)
# On en est là
# On ouvre la base et on cherche
adherents = ldap_crans.crans_ldap().search(sys.argv[1])['adherent']
cprint(u"%d adhérent(s) a/ont été trouvé(s)..." % len(adherents))
time.sleep(3) # On dort un peu, ctrl-c welcome
# opt = commands.getoutput("/usr/sbin/postconf smtpd_client_message_rate_limit")
# limit = int(opt.split()[-1])
# if limit > 0 and len(adherents) >= 10:
# limit_risen = True
# postconf(0)
# else: limit_risen = False
limit_risen = False
try:
try:
fichier = open(sys.argv[2])
texte = fichier.read()
fichier.close()
except IOError:
cprint(u"Impossible d'ouvrir le fichier à envoyer, merci, au revoir.")
sys.exit(1)
echecs = []
s = smtplib.SMTP()
s.connect('smtp.crans.org')
for adherent in adherents:
mail = adherent.mail().encode("utf-8", "ignore")
if "@" not in mail:
mail = mail + "@crans.org"
cprint(u"Envoi du mail à %s <%s>..." % (adherent.Nom(), mail))
try:
recipient = format_sender(u'"%s" <%s>\n' % (adherent.Nom(), mail))
s.sendmail('bulk+%s@crans.org' % mail.replace("@",'-at-'),
(mail,),
"To: %s\n%s" % (recipient, texte))
except:
cprint(u"Erreur lors de l'envoi à %s <%s>..." % (adherent.Nom(), mail), "rouge")
echecs.append(mail)
else:
# Tout va bien
pass
if echecs:
print "\nIl y a eu des erreurs :"
print echecs
s.close()
# On rétablit la conf de postfix
finally:
if limit_risen: postconf(limit)

View file

@ -0,0 +1,15 @@
#!/bin/sh
# Lorsqu'on lance une impression sur zamok, une fois sur deux le driver
# n'arrive pas à générer le raster. Le problème est que le processus
# cnpkmodule qui le génère n'est pas automatiquement tué, monopolisant
# ainsi du CPU.
# Toutes les heures on appelle ce script qui tue toutes les occurances
# de cnpkmodule avec un time supérieur à 60 minutes
echo "deprecated"
exit 1
ps ax | grep cnpkmodule | \
perl -nle '/\s*(\d*)\s+([^\s]*\s*){2}(\d*)/; if ($3 > 60) {kill 9, $1; print "cnpkmodule was killed"}'