Publié dans Python

Lister les nouveaux fichiers et supprimer les anciens dans un repertoire avec python


Si vous sauvegardez des fichiers logs  dans un répertoire vous aurez peut être envi un jour de faire le ménage  en supprimant les anciens fichiers et garder les nouveaux.Je suis plus ou moins dans le même contexte et j’ai écrit un script en python qui fait mon bonheur.Si jamais ça peut vous être utile temps mieux :-).

# Supprimer les anciens fichiers .dat et garder les n plus récents
import os
path = '/Users/elwan7/fichier_dat/'
nombre_fichier_recent = 5

os.chdir(path)
fichiers = sorted(os.listdir(os.getcwd()), key=os.path.getmtime)
fichiers_dat = []
for element in fichiers:
    if element.endswith('.dat'):
        fichiers_dat.append(element)

liste_nouveau = fichiers_dat[-nombre_fichier_recent:]
file_to_delete = fichiers_dat
for r in liste_nouveau:
    file_to_delete.remove(r)
if file_to_delete:
    for i in file_to_delete:
        os.remove("{}".format(path + '/' + i))

Publié dans Python, Serveurs

Installation de Odoo 8.0 (ex openerp) sur ubuntu 14.04 LTS


Odoo est un PGI(progiciel de gestion intégré) qui peut regrouper l’ensemble des fonctions(gestion de stock,comptabilité,vente,RH,CRM,…) d’une entreprise dans un seul programme informatique dans le but de facilité l’interaction avec les différents départements, d’éviter la redondance d’informations pour ne citer que cela .Dans la liste des PGI encore appelé ERP(en anglais) nous pouvons distinguer les EPR opensources(odoo,openbravo,trython,…) et propriétaires(SAP,SAGE,GEAC…),ainsi dans cette article nous allons parler du plus célèbre des ERP opensource. Nous n’allons pas parler de l’aspect fonctionnel pour le moment.Ainsi si vous lisez ces lignes je suppose que vous êtes déjà imprégné sur le sujet et que vous avez décidé de passez à l’installation pour vous familiarisez avec ce système.L’installation peut se faire de plusieurs façons mais nous avons choisi l’installation depuis les sources qui facilite le développement et l’intégration de nouveau module et le déboggage en cas de problème. Pour en savoir plus sur les autres méthodes d’installation vous pouvez visitez la documentation officielle ici

Pre-requis

Nouvelle installation de Ubuntu-server 14.04 si vous n’avez pas l’image vous pouvez aller le télécharger au niveau du site officiel Ici.
L’installation de la machine GNU/Linux ne sera pas détaillée dans ce tutoriel merci de votre compréhension :-p .
N’oubliez pas d’installer openssh-server pour accéder à votre machine à distance(optionnel).

Première étape :

Installation de git et des dépendances

sudo apt-get install git

sudo apt-get install graphviz ghostscript postgresql-client \
python-dateutil python-feedparser python-matplotlib \
python-ldap python-libxslt1 python-lxml python-mako \
python-openid python-psycopg2 python-pybabel python-pychart \
python-pydot python-pyparsing python-reportlab python-simplejson \
python-tz python-vatnumber python-vobject python-webdav \
python-werkzeug python-xlwt python-yaml python-imaging

sudo apt-get install gcc python-dev mc bzr python-setuptools python-babel \
python-feedparser python-reportlab-accel python-zsi python-openssl \
python-egenix-mxdatetime python-jinja2 python-unittest2 python-mock \
python-docutils lptools make python-psutil python-paramiko poppler-utils \
python-pdftools antiword

installer le paquet wkhtmltopdf qui permet d’avoir des rapports en pdf ainsi il faut installer le paquet manuellement au moment au j’écris ces lignes la version disponible dans les depots de Ubuntu n’est pas compatible avec odoo 8.Voici le lien directe pour telecharger la version de Ubuntu Trusty ici

ensuite installer le paquet avec la commande suivante

wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb

Deuxième étapes :

Installation et configuration de la base de donnee

sudo apt-get install postgresql
creation de l’utilisateur odoo pour la base de donnée
sudo -u postgres createuser -s odoo

Troisième étapes :

Récupérer le code source de odoo depuis github
wget -O- https://raw.githubusercontent.com/odoo/odoo/8.0/odoo.py | python

Quatrième étapes :

exécuter le serveur
cd odoo
./openerp-server

Maintenant si tout se passe bien notre application sera disponible à l’url suivant http://localhost:8069

NB:

Si pendant le démarrage de l’application vous obtenez l’erreur suivante
raise ValueError, 'unknown locale: %s' % localename
ValueError: unknown locale: UTF-8

la solution est :
export LC_CTYPE='en_US.utf8'
Et redémarrer l’application à nouveau .

Publié dans apache2, debian, GNU/Linux, html5, serveur web, Serveurs, webdev

Changer le répertoire (/var/www/html) par défaut d’apache2 sur Debian


Si vous créez des sites web ( amateur ou pro) avec une distribution GNU/Linux  vous devez connaître forcement apache2 et savoir pour que votre application soit disponible à travers l’adresse 127.0.0.1 il faut déposer les fichiers sur le répertoire par défaut du serveur web apache2(/var/www/html) .Et si vous utilisez des éditeurs de texte  graphique comme  Sublim-text ou Brackets ou ce que vous voulez … vous devez alors les démarrer en mode administrateur(root) pour pouvoir éditer convenablement vos fichiers qui sont dans le répertoire /var/www/html et cela n’est pas très conviviale dans un environnement de test .Voila donc c’est pour cette raison que nous allons changer  le répertoire et le pointer dans un répertoire ou un utilisateur simple pourra éditer les fichiers sans disposer de droit administrateur.Maintenant  chacun peut y aller avec ces propres raisons :-p .Bon changeons ce répertoire une bonne fois pour toute :-).

1-Créons un dossier de destination

 mkdir  /home/hostname/websites

2-Donnons ensuite tous les droits à l’utilisateur « www-data » qui exécute Apache2 et ensuite attribuons un accès total à l’utilisateur simple pour ce répertoire :

chown www-data /home/hostname/websites -Rf 
sudo chmod 775 -R /home/hostname/websites
3-Editons le fichier de configuration d’apache

 sudo nano /etc/apache2/sites-available/000-default.conf

Regardons la directive « Documentroot »qui pointe vers « /var/www/html » ensuite nous allons donc changer cette directive pour y mettre  « /home/hostname/websites » .

4-Nous devons faire la même chose en changeant le chemin (/var/www/html) dans le tag « Directory » par le nouveau(/home/hostname/websites)

sudo nano /etc/apache2/apache2.conf

Enfin nous pouvons ensuite redémarrer Apache 2 pour que les changements de configuration soient pris en compte :
sudo service apache2 restart

NB : cet usage n’est pas recommandé dans un environnement de production l’aspect sécurité n’est pas pris en compte.

Publié dans html5, javascript, Langages

Introduction au WebRtc


Voici une  petite présentation de la technologie Web-RTC (Web real-time communication) que j’avais faite lors d’un évènement( Ndogou* du libre )  de la communauté du libre de dakar (Dakarlug) .

Demo: Scripts

PS : après avoir télécharger les fichiers changez les extensions .doc en .html 

*Ndogou (Rupture du jeûne pendant le mois du ramadan en wolof )

Publié dans Langages, Linux, Python, Telecoms

Envoyer un sms avec votre ordinateur via bluetooth


Ceci est un script python qui permet d’envoyer un sms depuis son ordinateur via une connexion bluetooth avec un téléphone portable.Ceci ne représente pas grand chose…. mais je juge utile de le partager pour l’améliorer  😉

Donc avant toute chose sachez qu’on a deux méthodes d’envoi de sms avec les Commandes AT:

-Le mode Texte(140 caracteres)

-Le mode PDU(160 caracteres)

dans ce tuto le mode Texte sera utilise pour en savoir plus sur les sms suivez ce lien…. en anglais  😛

Prerequis

    • système d’exploitation Linux(Ubuntu)

 

  • Installer Python

 

 

  • Installer les Modules  python-bluetooth  python-bluez

 

 

  • Un téléphone Portable compatible mode texte

 

 

  • Une clé bluetooth a défaut d’un périphérie natif sur votre ordinateur

 

 

  • Un tout petit peu de connaissance en Python 🙂

 

 

Script

 #!/usr/bin/python # -*- encoding: utf-8 -*- import bluetooth #entrer le nom du peripherie bluetooth target_name =raw_input("entrer le nom de votre periphérie:\n") target_address = None #recherche des périphéries bluetooth disponibles nearby_devices = bluetooth.discover_devices() #recherche le nom de votre périphérie dans la liste des adresses disponibles for bdaddr in nearby_devices: if target_name == bluetooth.lookup_name( bdaddr ): target_address = bdaddr break #si la périphérie est trouvée on se lance dans le processus de connexion au téléphone grâce au protocole RFCOMM #on a besoin d'un canal de communication et de l'adresse du périphérie if target_address is not None: bt_addr = target_address channel =  bluetooth.find_service(address=bt_addr, uuid=bluetooth.DIALUP_NET_CLASS)[0]['port'] #channel = 1 #si la connexion est établie on entre le numéro du destinataire et le message a envoye(max 140 caracteres) dest =raw_input("Entrer le numéro du destinataire:\n") text =raw_input("Entrer votre message:\n") #connection au périphérie via RFCOMM sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM) sock.connect((bt_addr, channel)) # passe le modem en mode texte pour l'envoi de sms sock.send("AT+CMGF=1\r") sock.send("AT+CMGS=\"%s\"\r" % dest) # chr(032) -> ctrl + Z, séparateur de fin de sms sock.send("%s%s" % (text,chr(032))) #fermer la connexion sock.close() print "message bien envoyer" else: print 'aucun périphérie trouver'

Voila j’espere que vous y trouverais votre compte toutes remarques et améliorations du scripts est la bienvenue
🙂
be free be linux!!!

Publié dans Langages, Linux, Python

Script python pour redemarrer votre modem-routeur speedtouch


Suite aux nombreuses défaillances de la connexion internet fournit par mon FAI j’était souvent obligé d’aller redémarrer le modem-routeur(SpeedTouch 530) qui n’était pas dans ma chambre ce qui était ennuyant et les fatiguants vas-et-vient j’en pouvais plus 🙂 donc il m’est venu l’idée de créer un script en Python(the best 🙂 ) qui  le redémarre à distance 😛 j’espère qu’il vous sera utile et toute suggestion est la bienvenue 😉

!/usr/bin/env python
#importer le module pexpect et le module sys
import pexpect
import sys

#creer notre object de connexion
cnx=pexpect.spawn('telnet 192.168.1.254')

#creation du fichier mylog pour voir le comportement du script
fout = file('/tmp/mylog.txt','w')
cnx.logfile = fout

#recuperer le login et le mot de passe
cnx.expect('Username :')
cnx.sendline('Administrator\r')
cnx.expect('Password :')
cnx.sendline('Administrator\r')

#recuper le prompt

cnx.expect('=>')

#entre le commande pour redemarrer le modem

cnx.sendline(":system reboot\r")

#fermer la connexion
cnx.close

PS:par défaut le module pexpect n’est pas installé
pour l’installer

 wget http://pexpect.sourceforge.net/pexpect-2.3.tar.gz
 tar xzf pexpect-2.3.tar.gz
 cd pexpect-2.3
 sudo python ./setup.py install