Zola2 // Tout // Rien // Surtout Rien

Tuer plein de processus !

avril30

La commande magic pour par exemple tuer tous les processus qui contiennent « relaylock » :

kill `ps aux | grep relaylock | egrep -v grep | awk ‘{print $2}’`

Très pratique quand on a 1500 processus à tuer ! 😀

Surveillance via une webcam

février7

Vous partez en vacances ? vous voulez surveiller votre société à distance ? 

Voici comment mettre en place une surveillance par webcam qui fonctionne sur la detection de mouvement et permet d’envoyer les images capturées sur un serveur distant.

Installer le logiciel Motion :

Ce logiciel permet de capturer et de lancer des événements lors d’une detection de mouvement sur la webcam

sudo apt-get install motion

Editez le fichier de configuration :

sudo nano /etc/motion/motion.conf

Editer la ligne :

; on_picture_save value

par

on_picture_save wput ftp://username:password@serveur/chemin %f

Remplacez :

username : par votre login FTP
password : par le mot de passe de votre FTP
serveur : par l’adresse de votre serveur FTP
chemin (option) : par le chemin ou vous désirez sauvegarder les captures

Votre webcam USB est logiquement présente sur : /dev/video0, si ce n’est pas le cas, faites la correction via la ligne :

videodevice /dev/video0

Modifier aussi le chemin ou est sauvegardé les images capturé en local :

target_dir /tmp/motion

Installer le logiciel wput :

wput permet d’envoyer des fichiers sur un serveur FTP

sudo apt-get install wput

Vous pouvez maintenant lancer le logiciel motion à votre départ en tapant la commande : motion

Installer Munin pour surveiller vos serveurs

janvier31

Munin est très pratique et permet de générer de nombreux graphiques différents pour suivre un serveur (ou un poste client !) ou plusieurs serveurs !

Sur le poste qui affichera les graphiques :

sudo apt-get install munin munin-node

Munin est l’outil central, l’outil qui génére les graphiques et va chercher les informations récupérée par munin-node.

Munin-node est donc, pour les postes clients le seul paquet à installer.

Configuration de munin-node (postes clients) :

Editer fichier ;

/etc/munin/munin-node.conf

A la fin du fichier vous devez donner les adresses IP autorisé à accéder aux informations de ce client.

Si vous désirez ajouter l’IP : 123.123.123.123, ajoutez :

allow ^123\.123\.123\.123$

Relancez ensuite le client :

sudo /etc/init.d/munin-node restart

Configuration de munin (serveur) :

Indiquez le chemin ou munin publiera les fichiers HTML avec tous les graphiques, par exemple :

htmldir /var/www/munin

Ensuite ajoutez les différents clients, si vous voulez ajouter le client : 123.123.123.124

[123.123.123.124]
address 123.123.123.124
use_node_name yes

Pour générer les graphiques manuellement :

sudo  /usr/bin/munin-cron --force-root

Vous pouvez ajouter une ligne dans un cron :

sudo crontab -e

et ajoutez par exemple :

*/5    *       *       *       *       /usr/bin/munin-cron --force-root

Les graphiques seront mis à jour toutes les 5 minutes.

Plugins

Tous les plugins ne sont pas actifs par défaut.
Il se trouve dans le dossier :

/usr/share/munin/plugins

Par exemple, pour activer le plugins apache_access, vous devez créer un lien symbolique :

cd /etc/munin/plugins/
ln -s /usr/share/munin/plugins/apache_access
/etc/init.d/munin-node restart

Personnaliser le message d’accueil du shell

janvier31

Rien de plus simple pour personnaliser le message d’accueil du shell, vous pouvez éditer le fichier :

/etc/motd

et

/etc/motd.tail

Le premier est régénéré le second à chaque redémarrage du PC.

LightScribe sous Ubuntu

janvier29

L’utilisation de la technologie LightScribe peut parfois s’averer utile, voici quelques solutions pour l’utiliser sous Ubuntu

Solution 1 (un outil simple uniquement pour labellisé les CD) :

Télécharger les packets suivants :

http://download.lightscribe.com/ls/lightscribe-1.14.32.1-linux-2.6-intel.deb

http://download.lightscribe.com/ls/lightscribeApplications-1.10.19.1-linux-2.6-intel.deb

Installez ensuite les 2 paquets.

dpkg -i lightscribe-1.14.32.1-linux-2.6-index.deb

dpkg -i lightscribeApllications-1.10.19.1-linux-2.6-intel.deb

Pour lancer l’utilitaire, executer la commande :

/opt/lightscribeApplications/SimpleLabeler/SimpleLabeler

Solution 2

Seconde interface graphique :

Téléchargez :

http://www.lacie.com/download/drivers/4L-1.0-r6.i586.rpm

Vous devez ensuite transformer le .rpm en .deb, pour cela vous devez avoir l’utilitaire « alien », si vous ne l’avez pas :

apt-get install alien

Ensuite lancez la commande :

sudo alien 4L-1.0-r6.i586.rpm

Et installer le packet généré :

sudo dpkg – i 4L-1.0-r6.i586.deb

Pour lancer l’utilitaire :

4L-gui

Backup distante

janvier2

Si vous avez un site internet, il est important d’avoir des sauvegardes journalières de votre site :

  • si votre site se fait hacker,
  • si le serveur plante

Plusieurs modes de sauvegarde existent, le problème devient plus délicat quand la quantité de données à sauvegarder deviens importante.

Dans l’exemple suivant, nous mettons en place une sauvegarde d’un site d’un serveur vers un PC distant.

Pour cela nous avons besoin d’avoir rsync d’installé sur le serveur et le PC distant.

sudo apt-get install rsync

Sur le PC distant (qui va recevoir les sauvegardes), rsync doit fonctionner en mode serveur, pour cela nous devons modifier son fichier de configuration :

sudo nano /etc/default/rsync

La variable RSYNC_ENABLE doit être à true :

RSYNC_ENABLE=true

Nous devons ensuite préparer le dossier qui recevra la sauvegarde du serveur :

Créons un dossier :

mkdir /home/backup

Ce dossier doit être accessible par rsync.

Nous devons commencer par ajouter un utilisateur rsync :

sudo useradd rsync
sudo passwd rsync

Et un groupe rsync :

sudo groupadd rsync
sudo gpasswd -a rsync rsync

Et nous pouvons ainsi donner les droit au dossier de sauvegarde :

chown -cR rsync:rsync /home/backup
chmod -cR 0777 /home/backup

Nous devons maintenant editer le fichier du deamon rsync :

sudo nano /etc/rsyncd.conf

Lors de la premiere installation de rsync, ce ficheir n’existe pas.

Nous lui indiquons le nom d’user et le groupe que rsync doit utiliser :

uid = rsync
gid = rsync

Ensuite nous lui indiquons ou devrons être placé les fichiers de sauvegarde :

[ma_sauvegarde]
path = /home/backup
comment = Ma sauvegarde
read only = false

La configuration du côté du PC distant est terminée, passons maintenant du côté serveur.
La commande a lancer si nous voulons sauvegarder le dossier /var/www vers le PC distant ayant l’IP 88.123.123.123 :

rsync -avz /var/www/ 88.123.123.123::ma_sauvegarde/

La première sauvegarde sera bien entendu beaucoup longue que les suivantes : seuls les modifications seront sauvegardées les fois suivantes !

Votre PC distant doit être accessible via le port 873 TCP.

Vous pouvez ensuite automatiser votre backup de façon journalière via un CRON.

Plesk 9.0.0 : notifications & limites buguées

décembre15

La nouvelle version de Plesk apporte son lot de nouveautés mais aussi son lot de bugs !

Un bug plutôt génant : les limitations ne fonctionnent pas…

Un message d’erreur apparait lorsqu’un limite est dépassée :

Error: Unable to create notification: Notification: unable to select: no such row in the table

Une astuce existe, le temps de l’arrivée d’un patch :

Allez sur la base de données « psa » et rendez-vous sur la table « Notifications ». Vous devriez y trouver 12 enregistrements. Il en manque…

Vous devez créer des enregistrements vides (pourquoi ? aucune idée), voici la requête à exécuter sur la base de données :

INSERT INTO `Notifications`
(
`id` , `status` , `send2admin` , `send2client` , `send2dlu` , `send2email` , `email` , `subj` , `note_id` , `send2reseller` )
VALUES

(
NULL , '', '', '', '', '', '', '', NULL , ''),
(
NULL , '', '', '', '', '', '', '', NULL , ''),
(
NULL , '', '', '', '', '', '', '', NULL , ''),
(
NULL , '', '', '', '', '', '', '', NULL , ''),
(NULL , '', '', '', '', '', '', '', NULL , ''),
(
NULL , '', '', '', '', '', '', '', NULL , ''),
(NULL , '', '', '', '', '', '', '', NULL , ''),
(NULL , '', '', '', '', '', '', '', NULL , ''),
(NULL , '', '', '', '', '', '', '', NULL , ''),
(NULL , '', '', '', '', '', '', '', NULL , '');

Géolocalisation de toutes les villes du monde

décembre13

Il est parfois utile lors de développement d’applicatif d’utiliser une base de données regroupant l’intégralité des villes d’une pays (ou de plusieurs) pour y retrouver code postal, latitude, longitude et ainsi pouvoir créer des applicatifs de géolocalisation (comme par exemple le CRM Elyazalée).

Des fichiers gratuits regroupant de nombreuses informations sur toutes les villes mondiales existent ! On peux ainsi connaitre la position géographique précise de chaque ville, le code postal, le nombre d’habitants, etc…

Les fichiers (format CSV) sont disponibles à l’adresse : http://download.geonames.org/export/dump/

Chaque pays à son propre fichier.

Il est intéressant de pouvoir intégrer ces fichiers dans une base de données ! Je déconseille d’intégrer l’intégralité de toutes les villes dans une seule table (> 6 millions)… il est nécessaire de créer une table par pays.

Voici la démarche pour la création de la table des villes française…

Commençons par créer la structure de la table : 

CREATE TABLE geoname_fr (
geonameid int PRIMARY KEY,
name varchar(200),
asciiname varchar(200),
alternatenames varchar(4000),
latitude decimal(9,7),
longitude decimal(9,7),
fclass char(1),
fcode varchar(10),
country varchar(2),
cc2 varchar(60),
admin1 varchar(20),
admin2 varchar(80),
admin3 varchar(20),
admin4 varchar(20),
population int,
elevation int,
gtopo30 int,
timezone varchar(40),
moddate date
) CHARACTER SET utf8;

Télécharger ensuite le fichier des villes française : http://download.geonames.org/export/dump/FR.zip
Dézippez le fichier.

Ensuite depuis le shell (ou dos…) :

LOAD DATA INFILE 'c:\chemindufichier\FR.txt' INTO TABLE geoname_fr (geonameid,name,asciiname,alternatenames,latitude,longitude,fclass,fcode,country,cc2, admin1,admin2,admin3,admin4,population,elevation,gtopo30,timezone,moddate);

Et voilà vous avez une belle table avec toutes les villes de France !
Si vous avez besoin de l’intégralité des pays, faites un petit script pour générer les différentes tables et ensuite y importer les différents fichiers !

Amusez-vous bien !

Plesk 9.0.0 : backup bugué

décembre13

Une petite astuce pour tout ceux qui viennent d’installer la nouvelle version de Plesk 9.0.0 :

Le module de backup ne fonctionne pas…
Quand vous lancez une sauvegarde vous obtenez le sympathique message :

Erreur: Runtime error in pmmcli:
exceptions.UnicodeEncodeError 'ascii' codec can't encode character u'\xe9' in position 49: ordinal not in range(128)
Traceback (most recent call last):
File "/opt/psa/admin/share/pmmcli/pmmcli.py", line 1417, in main
data_action_response, errcode_response, error_message = actions.get(sys.argv[1][2:])(parameters)
File "/opt/psa/admin/share/pmmcli/pmmcli.py", line 1338, in make_dump
return ActionRunner(MakeDumpAction, backup_task_description, None).doActivity()
File "/opt/psa/admin/share/pmmcli/pmmcli.py", line 67, in doActivity
result = self.processor.doActivity()
File "/opt/psa/admin/share/pmmcli/pmmcli.py", line 943, in doActivity
subprocess = cmd.asyncSpawn()
File "/opt/psa/admin/lib/python/subproc.py", line 219, in asyncSpawn
keepStderr = keepStderr)
File "/opt/psa/admin/lib/python/subproc.py", line 62, in __init__
self.__forkexec()
File "/opt/psa/admin/lib/python/subproc.py", line 90, in __forkexec
self.__process = subprocess.Popen(self.__args, stdin = self.__stdin , stdout = self.__stdout, stderr = self.__stderr, env = self.__env)
File "subprocess.py", line 543, in __init__
errread, errwrite)
File "subprocess.py", line 975, in _execute_child
raise child_exception
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 49: ordinal not in range(128)

Les sauvegardes étant vitales… voici deux solutions temporaires (le temps que Parallels corrige le bug) :

La première solution consiste simplement à mettre Plesk en version anglaise car le bug est causé par la présence d’accents dans le descriptif (ou titre) de la backup…
La deuxième solution, si vous voulez rester en Plesk francisé, suffit de modifier les fichiers suivants :

/opt/psa/admin/plib/locales/fr-FR/common_messages_fr-FR.php
/opt/psa/admin/plib/locales/fr-FR/messages_fr-FR.php

Remplacez les différents « Date de création » par « Date de creation » dans chaque fichier.

Lancez une backup manuelle pour vérifier !

A noter : les anciens fichiers de backup de la version précédente de Plesk ne sont pas visibles : les nouveaux formats des fichiers de backups est en .tar…

posted under Actualités | 3 Comments »
Newer Entries »