Archives de catégorie : LINUX

Tous ce que j’ai pu faire ou découvrir sous LINUX. Je vais essayer de vous expliquer çà.

LINUX – Remplacement d’un disque dans un volume Groupe LVM2

Au tout début, lorsque j’ai commencé à laisser Linux créer des Volumes Group par défaut à l’installation, je trouvais ça compliqué. Mais en fait, après quelques années, LVM n’arrête pas de me surprendre. Ce système est génial!

Dernièrement, le disque de 2TB contenant l’intégralité des données (/home) commençait à montrer de sérieux signes de faiblesses. Il était temps de le remplacer avant de tout perdre. Ceux qui ont déjà remplacé un disque sans LVM dont une partition abritai le /home seront certainement d’accord avec moi: c’est chiant. Avec LVM2, c’est presque trop facile.

Continuer la lecture de LINUX – Remplacement d’un disque dans un volume Groupe LVM2

Linux – Envoyer un mail à la connexion d’un utilisateur

Pour savoir qui a réussi à ouvrir une session (et quand) sur un serveur Linux sans avoir à parser les logs, l’une des solution est tout simplement d’envoyer un mail à une adresse lors de la connexion d’un utilisateur.
Pour cela, on peu ajouter une commande au script .bachrc de chaque profil (ce script étant exécuté à chaque connexion de la session utilisateur, que ce dernier l’ouvre sur le serveur, ou via SSH). On peut également ajouter une seule fois la commande dans le fichier /etc/bashrc, puisque ce script est appelé par le .bashrc de tous les utilisateurs. Voici la commande que j’utilise:

echo 'ALERT - '`whoami`' Shell Access ('`hostname`') on:' `date` `who` | 
mail -s "Alert: Shell Access from `who | cut -d'(' -f2 | cut -d')' -f1`"
 informational-alert@coradi.fr

On reçoit un mail de ce type:
ALERT – root Shell Access (blog.coradi.fr) on: ven. avril 15 14:30:17 CEST 2016 leseb pts/0 2016-04-15 14:29 (xxx.xxx.xxx.xxx)

Donc root s’est connecté sur le serveur blog.coradi.fr le 15 avril à 14:30 depuis la session existante pts/0 (ouverte par leseb) depuis une machine portant l’adresse IP xxx.xxx.xxx.xxx. C’est bon à savoir 🙂

CentOS7 – Gestion du Raid Linux

Supervision du Raid

La supervision des volumes Raid est gérée par mdadm et nécessite la présence du fichier de configuration /etc/mdadm.conf. Si ce fichier est absent, il est possible de le générer après la création des volumes Raid de la façon suivante:

mdadm --verbose --detail --scan > /etc/mdadm.conf

le fichier devrait ressembler à ceci:

ARRAY /dev/md/localhost.localdomain:0 level=raid5 num-devices=3 metadata=1.2 name=localhost.localdomain:0 UUID=d74aa481:760d8a60:0ada2cc8:51a1f439
   devices=/dev/sda1,/dev/sdb1,/dev/sdc1

Afin de configurer les alertes mails, ajouter les informations suivantes à la fin du fichier:

MAILFROM raid@coradi.fr
MAILADDR leseb@coradi.fr

Démarrer ensuite le service de supervision du Raid:

systemctl start mdmonitor.service

Pour activer le service au démarrage du serveur, lancer la commande:

systemctl enable mdmonitor.service

Pour vérifier que le service est bien démarré, lancer la commande suivante et observer le retour de la commande:

systemctl status mdmonitor.service -l

raidgest1

Gestion de l’erreur mismatch_cnt is not 0 on /dev/md0

Si vous recevez les messages cron, ou que vous relevez la boite root, vous avez pouvez avoir des messages du type:
/etc/cron.weekly/99-raid-check:
WARNING: mismatch_cnt is not 0 on /dev/md0

Ce message indique une désynchronisation des données sur les disques du volume Raid md0 (le chiffre peut varier en fonction de la configuration et/ou du nombre de volumes Raid). Cela peut être dû à une erreur logiciel (facilement réparable) ou matériel (là, c’est la merde!).

Commencez par vérifier l’état du Raid en exécutant:

cat /proc/mdstat

Vérifier que le compteur de désynchronisation des données est toujours différent de 0:

cat /sys/block/md0/md/mismatch_cnt

Voici comment remettre les compteurs à 0.

Pour réparer le volume, lancer:

echo repair >/sys/block/md0/md/sync_action

Vous pouvez suivre l’évolution de l’action avec la commande:

watch cat /proc/mdstat

Une fois la réparation terminée, lancer une vérification du volume:

echo check >/sys/block/md0/md/sync_action

Une fois la réparation terminée, le compteur doit être de nouveau à 0:

cat /sys/block/md0/md/mismatch_cnt

MySQL: commandes en vrac

Affiche la taille des bases de données:

SELECT table_schema , sum( data_length + index_length ) / 1024 / 1024 /1024 "Data Base Size in GB" FROM information_schema.TABLES GROUP BY table_schema;

Affiche la taille de chaque table d’une BDD:

SELECT table_name AS "Tables", round(((data_length + index_length) / 1024 / 1024), 2) "Size in MB" FROM information_schema.TABLES WHERE table_schema = "zabbix" ORDER BY (data_length + index_length) DESC;

Afficher la liste de tous les utilisateurs MySQL

SELECT User,Host FROM mysql.user;

Créez une nouvelle base de donnée:

CREATE DATABASE database_name;

Créez un nouvel utilisateur avec mot de passe:

CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'mot_de_passe';

Donnez les permissions à l’utilsateur sur la base de données:

GRANT ALL ON database_name.* TO 'user_name'@'localhost';

Appliquez les privilèges:

FLUSH PRIVILEGES;

XBMC: régler les problèmes de mise à jour de la base de données

La beta 4 de XBMC 13 (Gotham) étant sortie, j’ai voulu la tester, mais j’ai eu une petite surprise lors de l’upgrade d’XBMC depuis la version 12 (Frodo) vers la version 13 beta 4. Impossible de mettre à jour la base de données des vidéos depuis la version 12 (MyVideos 75) vers la version 13 (MyVideos78). Je précise que toutes les instances d’XBMC installées chez moi communiquent avec une base de données MySQL centralisée.

Avant toute chose, il me parait important d’expliquer brièvement le fonctionnement des bases de données MySQL d’XBMC.
Chaque version XBMC utilise un schéma de base de données différent, ce qui fait que chaque version d’XBMC installée va créer une base de données différente. La base de données portera un nom du type: MyVideos<numéro de version> ou MyMusic<numéro de version>.

Pour XBMC 12.3, la base de données vidéos se nomme MyVideos75
Pour XBMC 13, MyVideos78.

Les différentes instances d’XBMC portant la même version utiliseront bien sûr la même base de données. Lorsque l’on installe une nouvelle version d’XBMC ou que l’on met à jour une version existante, la nouvelle version d’XBMC va vérifier les bases de données présentes dans MySQL, puis créer une nouvelle base de données estampillée du nouveau numéro de version, et intégrer les données présentes dans la BDD déjà existante.

Ceci étant dit, passons au diagnostique et à la résolution du problème.

Après une petite exploration des logs XBMC, voici ce qu’ils m’affichent :

20:28:29 T:5516   ERROR: Unable to open database: MyVideos78 [1049](Unknown database 'MyVideos78')
20:28:29 T:5516   ERROR: Unable to open database: MyVideos77 [1049](Unknown database 'MyVideos77')
20:28:29 T:5516   ERROR: Unable to open database: MyVideos76 [1049](Unknown database 'MyVideos76')
20:28:29 T:5516 NOTICE: Old database found - updating from version 75 to 78
20:28:31 T:5516   ERROR: Unable to copy old database MyVideos75 to new version MyVideos78

Il s’agirait donc bien d’un problème MySQL. Je fais un petit tour dans les logs de MySQL :

cat /var/log/mysqld.log

xbmc-mysql-err
La base de données des vidéos est corrompue.

Solution :

Lancer la réparation des tables posant problèmes. Se connecter à MySQL puis à la base de données :

mysql -u xbmc -p
USE MyVideos75 ;

Pour chaque table endommagée, lancer la commande :

REPAIR TABLE <table name>;

 

Dans mon cas, n’ayant pas envie de passer en revue toutes les tables, j’ai lancé une réparation de l’ensemble des tables de la base de données :

mysqlcheck--repair --database MyVideos75

xbmc-mysql-repair
Il est également possible de lancer une vérification et une réparation de toutes les tables pour l’ensemble des bases de données avec la commande :

mysqlcheck--repair --all-databases

 

Ça ne peut pas faire de mal. Choisissez donc la méthode qui vous convient. Suite à la réparation de la base de données, XBMC 13 beta4 a bien récupéré les informations de la base de données MyVideos75, et a créé la base de données MyVideos78.

Cryptolocker : un virus / ransomware qui fait son chemin

Je suis intervenu aujourd’hui chez un client suite à un problème viral. Quelque heures plus tard, je reçois un mail du responsable sécurité de mon entreprise indiquant à toute la société qu’un nouveau virus de type ransomware a déjà infecté plusieurs client. Il s’agissait bien sur du même virus : Cryptolocker, ce qui me fait dire que ce logiciel fait son chemin, et n’a pas fini de poser problème. Ce virus infecte le poste par l’exécution d’une pièce jointe reçue par mail.Un message apparait sur le poste infecté, ressemblant à ceci:

cryptolocker

Un fois sur le poste, il cherche et crypte tous les fichiers portant certaines extensions. Les fichiers deviennent alors inutilisables, et le virus vous demande de verser une rançon pour obtenir la clé de décryptage, qui sera détruite à la fin du décompte. Ce scénario semblant tout droit sortie d’un film est malheureusement réel. A l’heure actuel, Cryptolocker n’est pas encore détecté par les différents antivirus du marché (Microsoft le nomme CriLock.A). Il est cependant possible de s’en protéger, ou de le supprimer si le poste est déjà infecté. Malheureusement, si tel est le cas, les fichiers infecté sont irrécupérables. Il faudra compter sur les sauvegardes.

Continuer la lecture de Cryptolocker : un virus / ransomware qui fait son chemin

Installer Chive, le SGBD open-source

Chive est un outil de gestion de bases de données MySQL open-source en mode Web, soit une alternative à PHPMyAdmin. Si le projet est encore jeune (version 1.0.3 sortie en mai 2012, on en est à la version 1.3 à l’écriture de ces quelques lignes), il est abouti. L’installation est très simple, la gestion des bases de données également, l’interface est rapide et sait tirer avantage des navigateurs Web modernes. Bref, je le trouve plus agréable à utilisé et plus intuitif que PHPMyAdmin.

Des informations complémentaires ainsi que les sources sont disponibles sur le site du projet.

Continuer la lecture de Installer Chive, le SGBD open-source

Installer FileBot sur CentOS 6 64 bits

filebot-logo-2013Pour ceux qui ne le connaissent pas, FileBot est un logiciel libre développé en Java (donc multi plateformes) permettant de renommer automatiquement vos films, séries, et musiques en s’appuyant sur divers sites de bases de données libres orientés medias (TMDB.org, AccousticID, theTVDB.com,…).

Il n’y a malheureusement pas de package d’installation pour CentOS. Voici donc la méthode d’installation maison pour une CentOS 6 64bits.

Continuer la lecture de Installer FileBot sur CentOS 6 64 bits

XBMC: Centraliser la médiathèque XBMC Frodo

Si vous commencez à avoir plusieurs media center XBMC, il peut être utile de centraliser la médiathèque. Cela apporte un peu de souplesse à l’utilisation en stockant les infos des médiathèque dans une base de données centralisée a la place d’avoir une base par terminal XBMC.

Pour mémoire, XBMC est une application media center open-source pour XboX (v1), Windows, Mac, Linux et AppleTV2.

Continuer la lecture de XBMC: Centraliser la médiathèque XBMC Frodo

Script de sauvegarde des bases de données MySQL sous Linux

Il n’est plus, je l’espère, utile de parler de l’importance des sauvegardes. J’ai donc bricolé il y a quelques années un script sauvegardant l’ensemble de mes bases de données MySQL. Il s’agit de simples « dump » de chaque base effectués par mysqldump, et stocké sur le disque. Chaque dump comporte dans son nom les jours mois et année de la sauvegarde. Un compteur supprime les sauvegardes jugées trop anciennes. Il existe bien sûr des logiciels performants, dont certains sont même open source, mais après quelques années de bons et loyaux services, mon petit script me convient, et je n’ai pas besoin de plus.

Continuer la lecture de Script de sauvegarde des bases de données MySQL sous Linux