Créer un serveur High Availability : la réplication des bases de données photo

Créer un serveur High Availability : la réplication des bases de données

Ce tutoriel aborde la réplication des données d’un VPS ou serveur dédié : les bases de données seront répliquées d’un serveur principal (master) sur un autre serveur auxiliaire (backup).

En cas de défaillance du serveur principal, le serveur auxiliaire prendra le relais automatiquement.

Ce guide considère que vous avez :

  • deux VPS ou Droplets chez Digital Ocean dans le même datacenter;
  • une IP flottante qui peut être assignée à l’un ou l’autre des serveurs, à la demande;
  • le même système d’exploitation sur les deux serveurs, pour des raisons de compatibilité.

Créer une image du VPS principal pour le VPS de sauvegarde

Commençons par la base du système : le système d’exploitation (OS). Lorsque j’ai pris le projet en main, le site était déjà en production et tournait sur la dernière version d’Ubuntu Server, avec NginX, MariaDB et SSL activé.

On aurait pu tout réinstaller sur le nouveau VPS mais autant gagner du temps : Digital Ocean permet de faire une image du VPS existant et de l’installer sur un nouveau droplet. C’est quelques heures d’installation et de configuration d’économisées.

Voici les données de mes deux VPS :

MASTER

ipv4: 104.xxx.xxx.133
Private IP:  10.134.23.164Code language: CSS (css)

BACKUP

ipv4: 104.xxx.xxx.186
Private IP:  10.134.4.220Code language: CSS (css)

Floating IP

Floating IP:  138.xxx.xxx.177Code language: CSS (css)

Je masque les IP publiques puisque mes serveurs sont en production mais ces IP serviront pour le tuto : l’IP qui se termine en .133 est le Master, l’IP qui se termine en .186 est le Backup, et l’IP qui se termine en .177 est l’IP flottante.

Réplication de la base de données

Les deux serveurs LEMP sont maintenant identiques, même les fichiers et bases de données. Mais nous avons besoin d’avoir une base de données synchronisée en temps réel, dans les deux sens, master-master.

Si un serveur tombe, l’autre prend le relais. Lorsque le serveur Master revient à lui, le serveur Backup lui redonne les données SQL manquantes.

1. Configuration du serveur MASTER

On édite la configuration MariaDB:

nano /etc/mysql/my.cnf

On édite et remplace/ajoute :

# MATT - skyminds.net : MariaDB replication instructions.
# https://www.skyminds.net/?p=28739

# 1. bind-adress : replace 127.0.0.1 with Internal IP.
# bind-address          = 127.0.0.1
bind-address            = 10.134.23.164

# 2. enable log_bin
log_bin                 = /var/log/mysql/mariadb-bin
log_bin_index           = /var/log/mysql/mariadb-bin.index

# 3. add server-id AND binlog_do_db
# NOTE : server-id is a way to identify this server in MariaDB configs.
# NOTE : binlog_do_db contains the names of the databases to replicate
server-id               = 1
binlog_format=mixed
# first DB
binlog_do_db            = first_wpdb
# second DB
binlog_do_db            = second_wp

# /MATTCode language: PHP (php)

Nous allons maintenant lancer quelques commandes sur le serveur SQL:

mysql -u root -p

Lire la suite

Installer IPKG sur un NAS Synology photo

NAS Synology : installer Entware en remplacement d’IPKG pour des applications à jour

Vous avez sûrement remarqué qu’IPKG n’est plus maintenu depuis maintenant quelques années (2014) et qu’à chaque mise à jour DSM du NAS Synology, les applications sautent.

Il devenait quasiment impossible d’installer IPKG sur les nouveaux NAS – jusqu’à l’arrivée d’Entware.

Entware est un petit nouveau qui a mis des années à mûrir mais il est mis à jour en permanence et offre plus de 1800 paquets à votre NAS. Il est aussi compatible avec les routeurs OpenWRT et LEDE.

Voyons donc comment installer cette nouvelle source d’applications.

Entware-ng, le petit nouveau

Entware-ng prend en charge les processeurs ARM et Intel, votre version de DSM doit quant à elle être égale ou supérieure à la version 3.2.

Il faut utiliser :

  • l’installeur armv5 pour les processeurs Marvell Kirkwood mv6282,
  • l’installeur armv7 pour les processeurs ARM plus récents. Le dépôt armv7 a été compilé avec l’optimisation cortex-a9 mais reste totalement compatible avec les NAS basés sur des Marvell Armada XP .

Déterminer le modèle du processeur du NAS

Considérons que SSH est activé dans les options du DSM (Control Panel > Applications > Terminal & SNMP > Terminal > Enable SSH service).

On commence par lancer une connexion SSH vers le NAS avec l’utilisateur admin :

ssh admin@DiskStationCode language: CSS (css)

et on passe root:

sudo -i

On peut trouver le modèle du processeur en tapant:

cat /proc/cpuinfo | more

Cela vous permet de savoir si vous êtes en armv5 ou armv7 (plus récent).

Un autre moyen, peut-être même plus simple :

uname -a

Résultat chez moi:

Linux DiskStation 2.6.32.12 #15132 Wed Jun 14 12:24:38 CST 2017 armv5tel GNU/Linux synology_212+Code language: PHP (php)

Installer Entware-ng sur notre NAS Synology

Toujours dans votre session SSH, en tant que root, vous allez maintenant installer Entware sur votre Synology.

1. On crée un dossier sur le disque, en dehors du rootfs :

mkdir -p /volume1/@entware-ng/opt

Le dossier /opt doit absolument être vide, c’est-à-dire qu’Optware ne doit pas être installé. Dans le doute, on le vide dans l’étape suivante.

2. On supprime /opt et on crée un lien symbolique:

rm -rf /opt
ln -sf /volume1/@entware-ng/opt /opt

3. On lance le script d’installation:

Pour armv5:

wget -O - http://pkg.entware.net/binaries/armv5/installer/entware_install.sh | /bin/shCode language: JavaScript (javascript)

Pour armv7:

wget -O - http://pkg.entware.net/binaries/armv7/installer/entware_install.sh | /bin/shCode language: JavaScript (javascript)

Pour x86-32:

wget -O - http://pkg.entware.net/binaries/x86-32/installer/entware_install.sh | /bin/shCode language: JavaScript (javascript)

Pour x86-64:

wget -O - http://pkg.entware.net/binaries/x86-64/installer/entware_install.sh | /bin/shCode language: JavaScript (javascript)

Pour MIPS:

wget -O - http://pkg.entware.net/binaries/mipsel/installer/installer.sh | /bin/shCode language: JavaScript (javascript)

4. On édite le fichier /etc/rc.local et on ajoute à la fin du fichier:

/bin/ln -sf /volume1/@entware-ng/opt /opt
/opt/etc/init.d/rc.unslung start

La dernière ligne permet de lancer les services Entware lors du démarrage du NAS.

Depuis DSM 6.1, /etc/rc.local n’est plus exécuté lors de la séquence de boot. Il faut donc créer une tâche planifiée qui lance ces deux instructions au démarrage du NAS.

Rendez-vous dans Panneau de configuration > Planificateur de tâches > Créer > Tâche déclenchée > Script défini par l’utilisateur. Cette tâche sera lancée au démarrage du NAS:

NAS Synology : installer Entware en remplacement d'IPKG pour des applications à jour photo

avec les instructions suivantes:

/bin/ln -sf /volume1/@entware-ng/opt /opt
/opt/etc/init.d/rc.unslung start
NAS Synology : installer Entware en remplacement d'IPKG pour des applications à jour photo 1

Lire la suite

Utiliser Rsync pour sauvegarder un serveur Debian/Ubuntu vers un NAS Synology photo

Utiliser Rsync pour sauvegarder un serveur Linux vers un NAS Synology

Dans ce tutoriel, nous allons voir comment configurer rsync pour planifier des sauvegardes d’un serveur distant et permettre l’accès SSH vers votre NAS Synology en local.

Armez-vous de votre terminal préféré et lancez une session SSH, c’est parti !

Étape 1 : créer un nouvel utilisateur Synology

Afin de bien séparer les processus et privilèges, il vaut mieux créer un nouvel utilisateur Synology : cela permet de contrôler exactement ce à quoi il a accès.

Dans ce tutoriel, notre utilisateur s’appellera saveme.

Étape 2 : activer l’accès SFTP

Activez l’accès SFTP dans Diskstation > Control Panel > FTP > SFTP > Enable SFTP service. Vérifiez aussi que le port 22 (SSH) est bien ouvert dans votre routeur et firewall; et bien redirigé vers votre NAS.

Ensuite, ouvrez une session SSH sur votre NAS :

ssh admin@IP_NASCode language: CSS (css)

Entrez votre mot de passe, vous devriez être loggué. Si ce n’est pas le cas, vérifiez la configuration routeur/firewall du port 22.

Étape 3 : éditer le fichier passwd

Une fois que vous êtes identifié en SSH sur votre NAS, il vous faut éditer le fichier passwd:

nano /etc/passwd

Allez à la dernière ligne, qui gère le nouvel utilisateur créé à l’étape 1. A la fin de cette ligne, remplacez :

/sbin/nologin

par

/bin/sh

Sauvegardez le fichier.

Maintenant, on assigne un dossier de travail avec tous les droits nécessaires à notre utilisateur (qui s’appelle saveme). Au lieu de le mettre dans /homes, on va plutôt le mettre à la racine, bien au chaud, sous /volume1/backup.

On donne accès au dossier :

chown saveme:users /volume1/backup 

Étape 4 : identification avec notre nouvel utilisateur

On s’identifie avec notre utilisateur saveme :

su - saveme

Si vous obtenez des messages d’erreur comme :

su: can't chdir to home directory '/volume1/backup'
su: can't run /sbin/sh: No such file or directoryCode language: PHP (php)

La première erreur est due à une erreur de permissions. Vérifiez que vous avez bien chowné le bon dossier. La seconde montre que vous avez oublié d’ajouter

/bin/sh

à votre utilisateur dans l’étape 3.

Étape 5 : ajouter la clé SSH du NAS sur le serveur distant

On crée la clé en utilisant le chemin par défaut et on appuie juste sur “entrée” lorsqu’on nous demande un mot de passe de clé :

ssh-keygen -t rsa

On copie la clé sur le serveur distant:

cat ~/.ssh/id_rsa.pub | ssh user@IP_SERVER "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"Code language: JavaScript (javascript)

Essayez maintenant d’ouvrir une session SSH sur votre serveur distant depuis la session SSH du NAS : la session devrait s’ouvrir sans que vous n’ayez à entrer le mot de passe du compte.

Si vous obtenez une erreur de permission, voici les bonnes permissions à appliquer :

  • le répertoire .ssh doit avoir un chmod 700,
  • la clé publique (fichier .pub) doit avoir un chmod 644,
  • la clé privée (id_rsa) doit avoir un chmod 600.

Voici donc les commandes à lancer pour attribuer les bonnes permissions sur le NAS:

chmod /volume1/backup/.ssh 700
chmod /volume1/backup/.ssh/id_rsa.pub 644
chmod /volume1/backup/.ssh/id_rsa 600

Lire la suite

Synology : installer PIP, le gestionnaire de paquets Python photo

Synology : installer PIP, le gestionnaire de paquets Python

Si l’on souhaite rajouter pas mal de fonctionnalités à un NAS Synology, on est vite limité par les applications officielles.

On peut passer par IPKG ou alors tout simplement installer pip, le gestionnaire de paquets Python.

Voici comment installer pip sur votre NAS Synology en moins de 3 minutes.

Installation de pip sur votre Synology

Pré-requis : vous devez avoir installé Python (version 2.7 chez moi) depuis le gestionnaire de paquets du DSM.

1. On commence par ouvrir une session SSH avec l’utilisateur root sur le port 22 de l’IP de notre NAS :

ssh -l admin 192.168.IP.NAS -p22
sudo -iCode language: CSS (css)

Depuis DSM6, on ne peut plus ouvrir de session SSH avec l’utilisateur root. Il faut donc ruser en ouvrant une session avec un autre utilisateur (admin par exemple) puis passer root avec sudo -i

2. Une fois connecté en tant que root, on récupère le paquet pip :

wget https://bootstrap.pypa.io/get-pip.pyCode language: JavaScript (javascript)

3. Et on installe pip :

python get-pip.pyCode language: JavaScript (javascript)

Cela prend un peu de temps. Voici ce que vous devriez obtenir :

Collecting pip
  Downloading pip-8.1.2-py2.py3-none-any.whl (1.2MB)
    100% |████████████████████████████████| 1.2MB 103kB/s 
Collecting setuptools
  Downloading setuptools-27.1.2-py2.py3-none-any.whl (464kB)
    100% |████████████████████████████████| 471kB 99kB/s 
Collecting wheel
  Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
    100% |████████████████████████████████| 71kB 535kB/s 
Installing collected packages: pip, setuptools, wheel
Successfully installed pip-8.1.2 setuptools-27.1.2 wheel-0.29.0

pip est maintenant installé. Il ne vous reste plus qu’à installer les paquets de votre choix, à la manière d’un apt, apt-get ou aptitude :

Usage:   
  pip  [options]

Commands:
  install                     Install packages.
  download                    Download packages.
  uninstall                   Uninstall packages.
  freeze                      Output installed packages in requirements format.
  list                        List installed packages.
  show                        Show information about installed packages.
  search                      Search PyPI for packages.
  wheel                       Build wheels from your requirements.
  hash                        Compute hashes of package archives.
  help                        Show help for commands.Code language: PHP (php)

À vous les paquets Python sur votre Synology !

Linux Mint : mettre à jour le noyau linux avec le kernel liquorix photo 1

Linux Mint : mettre à jour le noyau linux avec le kernel Liquorix

Linux Mint Debian Edition

Linux Mint Debian Edition (LMDE) est vraiment très stable et fonctionne avec des paquets éprouvés mais pas vraiment à jour.

Si vous avez du matériel récent, il est possible qu’il ne soit pas détecté – c’est le cas du pavé tactile de mon ordinateur portable – à cause du noyau linux qui laggue un peu.

A l’heure où j’écris ces lignes, Linux Mint Debian Edition utilise le kernel 3.16 alors que le dernier en date est le 4.6.3… voyons comment on peut le mettre à jour.

Le kernel Liquorix

Linux Mint : mettre à jour le noyau linux avec le kernel liquorix photo 1

Liquorix vient remplacer le noyau linux de votre distribution.

C’est un noyau à jour, avec des configurations supplémentaires pour les ordinateurs de travail, le multimédia et les jeux vidéos.

Installation de Liquorix

On passe root :

sudo -i

On édite le fichier sources.list d’apt :

nano /etc/apt/sources.listCode language: PHP (php)

et on y ajoute :

# liquorix kernel
deb http://liquorix.net/debian sid mainCode language: PHP (php)

On sauvegarde le fichier, on met à jour les paquets et on installe le keyring de Liquorix :

apt-get update && apt-get install '^liquorix-([^-]+-)?keyring.?'Code language: JavaScript (javascript)

On peut voir quels sont les derniers noyaux ajoutés sur le dépôt liquorix:

apt search liquorix

Ensuite, il vous suffit d’installer le dernier kernel en date:

apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64Code language: JavaScript (javascript)

Et on reboote la machine pour activer les changements. Le pavé tactile est miraculeusement actif après installation de ce kernel.

Ce noyau est stable et complémente très bien Linux Mint. Recommandé.

PHP : résoudre l'erreur "PHP Fatal error: Uncaught Error: Class 'DOMDocument'" photo

PHP : résoudre l’erreur “PHP Fatal error: Uncaught Error: Class DOMDocument”

Aujourd’hui, petite mise à jour mineure de PHP7, en utilisant les dépôts DotDeb.

Le problème : PHP-FPM désactivé par défaut

A la fin de l’installation, j’obtiens ce message d’avertissement :

Setting up php7.0-fpm (7.0.8-1~dotdeb+8.1) ...
Installing new version of config file /etc/init.d/php7.0-fpm ...
NOTICE: Not enabling PHP 7.0 FPM by default.
NOTICE: To enable PHP 7.0 FPM in Apache2 do:
NOTICE: a2enmod proxy_fcgi setenvif
NOTICE: a2enconf php7.0-fpm
NOTICE: You are seeing this message because you have apache2 package installed.
[ ok ] Restarting PHP 7.0 FastCGI Process Manager: php-fpm7.0.Code language: JavaScript (javascript)

C’est bien la première fois qu’une mise à jour de PHP désactive PHP-FPM, ce n’est pas vraiment une mise à jour mineure et sans accroc.

On réactive donc les deux modules indiqués et on relance la configuration de PHP-FPM avant de relancer Apache et PHP-FPM :

a2enmod proxy_fcgi setenvif
a2enconf php7.0-fpm
service apache2 restart && service php7.0-fpm restartCode language: CSS (css)

Je lance le site : page d’erreur de certificat la première fois, et page blanche ensuite !

Des modules PHP à installer séparément

Après analyse des dernières lignes du fichier log d’Apache, je me suis rendu compte que le site avait besoin des modules mbstring et xml or, cette nouvelle version ne les fournit plus : ce sont maintenant des paquets à installer à part.

Voici le message d’erreur des logs:

[26-Jun-2016 08:39:12 UTC] PHP Fatal error:  Uncaught Error: Class 'DOMDocument' not found in /public_html/wp-content/plugins/ginger/front/gingerfront.core.php:171
Stack trace:
#0 /public_html/wp-includes/plugin.php(235): ginger_parse_dom('...')

On installe donc mbstring et xml avant de relancer Apache et PHP :

apt install php7.0-mbstring php7.0-xml
service apache2 restart && service php7.0-fpm restartCode language: CSS (css)

Cette fois-ci, c’est tout bon. Tous les services sont actifs et le site est de nouveau opérationnel.

Attention donc : c’est une mise à jour mineure que j’aurais pu faire en SSH depuis mon téléphone, sans avoir les moyens de réparer à distance. Cela remet en perspective les mises à jour “on-the-go“.

Voici les nouveaux modules qui ne sont plus inclus par défaut avec PHP : bcmath, dba, mbstring, soap, xml et zip. Ce sont donc maintenant des paquets à part entière, à installer séparément.
Linux : résoudre l'erreur APT "there is no public key available for the following key IDs" photo

Linux : résoudre l’erreur APT de clé publique : “no public key available for the following key IDs”

Pas de clé publique disponible pour vérifier l’authenticité des dépôts

Linux : résoudre l'erreur APT "there is no public key available for the following key IDs" photo

Au lancement de la mise à jour des paquets du serveur, je suis tombé sur le message d’erreur suivant :

W: There is no public key available for the following key IDs:
8B48AD6246925553
W: There is no public key available for the following key IDs:
8B48AD6246925553
W: There is no public key available for the following key IDs:
8B48AD6246925553Code language: PHP (php)

Visiblement, APT a perdu ses petits et ne retrouve plus la clé publique GPG d’un des mes dépôts (webmin en l’occurence).

Voici comment remédier au problème.

Solution : demander et ajouter la clé au trousseau GPG

Un peu de ménage dans APT

On commence par faire un peu de ménage dans les fichiers APT avec un petit coup de balai:

apt-get cleanCode language: JavaScript (javascript)

… avant de récréer le dossier lists/partial pour véritablement recréer le cache APT :

cd /var/lib/apt
mv lists lists.old
mkdir -p lists/partial
apt-get clean && apt-get autoremove && apt updateCode language: JavaScript (javascript)

Import de la clé publique

Maintenant, il nous reste à importer la clé publique manquante dans notre trousseau.

On se place dans le dossier root pour travailler:

cd /root

On demande la clé publique:

gpg --recv-keys 8B48AD6246925553

On l’exporte et on l’ajoute à notre trousseau :

gpg --export 8B48AD6246925553 | apt-key add -Code language: JavaScript (javascript)

On peut alors relancer la mise à jour des paquets :

apt-get clean && apt-get autoremove
apt update && apt upgradeCode language: JavaScript (javascript)

Script bash pour automatiser la mise à jour des clés APT

Soyons plus fous, nous allons automatiser les deux commandes avec un petit script BASH. On crée notre script :

nano /home/scripts/renew-apt-key

et on y ajoute:

#!/bin/bash
# Author : Matt Biscay
# Author URI : https://www.skyminds.net/?p=8735
gpg --keyserver keyserver.ubuntu.com --recv-keys $1
gpg --armor --export $1 | sudo apt-key add -Code language: PHP (php)

On enregistre le fichier et on le rend executable :

chmod +x renew-apt-key

Il ne vous reste plus qu’à renouveler votre clé APT avec:

sudo ./renew-apt-key NUMERO-DE-CLE

Et voilà, plus d’erreur lors des mises à jour APT.

Linux : activer le touchpad multi-touch sur un portable Asus photo 2

Linux : activer le touchpad multi-touch sur un portable Asus

Lorsque j’ai installé Ubuntu Mate sur mon nouvel Asus en lieu et place de Windows 10, j’ai vite fait de remarquer que le multi-touch du pavé tactile n’était absolument pas reconnu – seul un dispositif de pointage avec deux boutons est détecté.

Linux : activer le touchpad multi-touch sur un portable Asus photo 2

Nous allons donc voir comment pallier ce problème.

Ce tuto s’adresse aux ordinateurs portables Asus mais reste valable pour d’autres marques ou modèles.

Mise à jour du système

Commencez par mettre à jour les paquets du système :

sudo apt update && sudo apt upgrade

Puis nettoyez les paquets devenus inutiles:

sudo apt-get autoremoveCode language: JavaScript (javascript)

Mise à jour du kernel

J’ai installé Ubuntu 16.04 deux mois avant la sortie officielle, quand le kernel linux était encore dans la branche 4.2.x et le pavé multitouch (Elan Pad) n’était absolument pas reconnu comme multi-touch mais comme simple souris.

Après de multiples installations de kernel, chacune ajoutant son lot de surprises comme perte de la carte vidéo après le démarrage, ronflement maximal du ventilateur du processeur, boot impossible après l’écran de démarrage GRUB… il faut se résoudre à l’évidence : mieux vaut attendre le kernel officiel, signé et testé.

Le premier kernel fonctionnel qui m’a permis de retrouver le multi-touch est le kernel 4.4.0-20, sans trop d’effets secondaires (changement du pilote graphique).

Lire la suite

Serveur dédié : résoudre le problème "no space left on device" photo

Serveur dédié : à la recherche de l’inode perdue ou comment résoudre le problème “no space left on device”

Les inodes perdues ! Cette semaine, j’ai eu droit à un problème particulier sur le serveur : alors que rien dans la configuration des services n’a été changé, je me suis rendu compte que WordPress ne réagissait pas comme d’habitude.

Les symptômes les plus visibles sont la lenteur de l’application, l’impossibilité de mettre à jour ou corriger un article ou encore ajouter des tags à un nouvel article.

J’avais déjà connu cet état lors d’un crash de la base SQL il y a maintenant quelques années donc je me suis dit que j’allais commencer par redémarrer Apache puis réparer la base de données.

Serveur dédié : résoudre le problème "no space left on device" photo

Suppression des instances Apache et redémarrage du service

Dès le lancement de la session SSH, il est évident que quelque chose ne tourne pas rond. Après le message de bienvenue, un message d’erreur apparaît :

/usr/bin/xauth:  error in locking authority file /root/.Xauthority

Et en voulant arrêter Apache, on obtient:

Restarting web server: apache2. [error]
There are processes named 'apache2' running which do not match your pidCode language: JavaScript (javascript)

On commence donc par régler ce problème et on regarde quels sont les PID utilisés par Apache:

pidof apache2

La commande pidof nous retourne toute une liste de pid:

32691 31385 31154 30917 30663 29150 27368 24820 24563 17531 15227 14235 13559 13064 11028 10906 10256 9156 9144 9042 8855 8542

On met fin à toutes ces instances avec un simple kill -9:

kill -9 32691 31385 31154 30917 30663 29150 27368 24820 24563 17531 15227 14235 13559 13064 11028 10906 10256 9156 9144 9042 8855 8542

Une fois toutes les instances d’Apache supprimées, il nous est de nouveau possible de redémarrer le service normalement:

service apache2 restart

Ménage dans l’espace disque et le nombre d’inodes disponibles

Au moment de réparer les tables de la base de données, rebelote, erreur :

No space left on device (error 28)

On commence par un petit ménage dans les paquets obsolètes, qui ne résoudra pas grand-chose:

apt-get autoclean && apt-get autoremoveCode language: JavaScript (javascript)

Je tente un simple df pour vérifier si les disques sont pleins :

df

mais visiblement, non, il reste bien de la place :

Filesystem      Size  Used Avail Use% Mounted on
/dev/root       9.8G  4.4G  5.0G  47% /
devtmpfs        2.0G     0  2.0G   0% /dev
tmpfs           390M  408K  390M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           780M     0  780M   0% /run/shm
/dev/sda2       683G  531G  118G  82% /homeCode language: PHP (php)

Je tente alors un df -i pour vérifier le nombres d’inodes disponibles :

df -i

Un nœud d’index ou inode (contraction de l’anglais index et node) est une structure de données contenant des informations à propos d’un fichier stocké dans les systèmes de fichiers Linux/Unix.

À chaque fichier correspond un numéro d’inode (i-number) dans le système de fichiers dans lequel il réside, unique au périphérique sur lequel il est situé.

Serveur dédié : résoudre le problème "no space left on device" photo 1
Descripteurs de fichiers, table des fichiers et table des inodes sous Linux

Les inodes contiennent notamment les métadonnées des systèmes de fichiers, et en particulier celles concernant les droits d’accès.

Les inodes sont créés lors de la création du système de fichiers. La quantité d’inodes (généralement déterminée lors du formatage et dépendant de la taille de la partition) indique le nombre maximum de fichiers que le système de fichiers peut contenir.

Dans notre cas, catastrophe, il ne reste quasiment plus d’inodes disponibles !

Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/root        640K  640K     6   100% /
devtmpfs         487K  1.5K  486K    1% /dev
tmpfs            488K   864  487K    1% /run
tmpfs            488K    10  488K    1% /run/lock
tmpfs            488K     2  488K    1% /run/shm
/dev/sda2         44M   37K   43M    1% /home

Lire la suite

Un fond noir avec le changeur de papier peint Linux Variety dessus.

Linux : installer Variety pour changer votre fond d’écran automatiquement

Du besoin de changer de fond d’écran

J’aime bien que mon fond d’écran change de temps en temps. Cela permet de ne pas avoir un bureau trop fixe, de ne pas avoir toujours la même image sous les yeux.

Ce qui est drôle, c’est que ce n’était pas le cas avant – je pouvais garder le même fond d’écran pendant des mois, voire même des années pour certains.

Sous linux, j’ai utilisé plusieurs programmes pour varier les fonds d’écrans comme Drapes ou Wallch mais, au fur et à mesure des nouvelles moutures de mon système d’exploitation et/ou des mises à jours des paquets et dépendances, ces programmes ont cessé de fonctionner. D’abord Drapes puis, récemment Wallch.

Je suis donc parti en croisade pour chercher une nouvelle alternative et suis tombé sur Variety, qui tourne sous tous les linux dérivés de Debian, comme Ubuntu ou Linux Mint.

Variety

Variety est donc un changeur de fond d’écran (wallpaper changer, c’est plus chic et ça sonne mieux en anglais) léger, très exhaustif en fonctionnalités et ultra-simple à prendre en main.

Il peut automatiquement télécharger de nouvelles images depuis des sources diverses, changer le fond d’écran à un intervalle donné ou à la demande et permet de trier les images pour garder les meilleures.

On peut également ajouter de nouvelles sources d’images.

Lire la suite

Linux : retrouver l'usage des touches F5 et F6 pour régler la luminosité depuis le clavier d'un ordinateur portable photo

Linux : retrouver l’usage des touches Fn + F5 et F6 pour régler la luminosité depuis le clavier d’un ordinateur portable

Pour mes 35 ans, j’ai eu le plaisir immense de recevoir un nouveau laptop pour remplacer mon ancien PC portable de 2005 dont l’écran avait lâché.

Linux : retrouver l'usage des touches F5 et F6 pour régler la luminosité depuis le clavier d'un ordinateur portable photo

Après avoir joué quelques minutes avec Windows 10, j’ai ensuite installé Ubuntu Mate, qui a l’air vraiment génial.

Après l’installation, au redémarrage de la machine, je constate que la luminosité de l’écran est au maximum et qu’il m’est impossible de régler la luminosté avec les touches Fn + F5/F6.

Si vous êtes vous aussi confronté à ce problème, voici comment le résoudre.

Baisser la luminosité de l’écran

On commence par baisser la luminosité de l’écran avant de perdre la vue ou attraper une sinusite oculaire.

Rendez-vous dans Système > Préférences > Matériel > Gestionnaire d’énergie et baissez la luminosité. Je l’ai mise à 60% dans mon cas.

Ajouter le support des touches F5 et F6 pour régler la luminosité

Il nous reste maintenant à ajouter le support des touches F5 et F6 pour régler la luminosité. Cela m’a pris un peu de temps pour trouver la solution : j’ai d’abord regardé sur le net, installé des paquets, testé, rebooté…

En fait, il n’y a pas de paquets à installer. Il suffit juste d’ajouter une directive dans la configuration de démarrage de GRUB.

1. On édite /etc/default/grub en tant que root :

sudo nano  /etc/default/grubCode language: JavaScript (javascript)

2. On recherche la ligne GRUB_CMDLINE_LINUX_DEFAULT

3. On rajoute l’instruction “acpi_osi=” à la fin de cette ligne. Chez moi, cela donne donc:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi="Code language: JavaScript (javascript)

4. On met à jour GRUB:

sudo update-grub

Lire la suite

NAS Synology : résoudre l'erreur rsync "permission denied" lors de la connexion au NAS photo

NAS Synology : résoudre l’erreur rsync “permission denied” lors de la connexion au NAS après mise à jour du DSM

Mon NAS Synology vient de mettre à jour son firmware DSM et je constate en lançant ma sauvegarde rsync que la connexion rsync vers le NAS ne se fait plus : après saisie du mot de passe, on obtient une erreur “permission denied”.

Voici comment remédier à ce petit désagrément en deux minutes montre en main.

Problème : connexion SSH refusée

Lors de la connexion initiale, démarrée par :

rsync --ignore-existing --progress -vr --rsh='ssh -p22222' /home/backup/* root@example.com:/volume1/videoCode language: PHP (php)

on obtient le message d’erreur suivant, après saisie du mot de passe:

Permission denied, please try again.
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.1]Code language: CSS (css)

Après vérification que les identifiants (user/password) sont bien corrects, il s’avère que la solution réside dans l’utilisation de l’argument --rsync-path afin d’expliciter le chemin de l’exécutable rsync présent sur le NAS.

Solution : ajouter le chemin du binaire rsync du NAS

La solution est toute simple, il suffit de renseigner le chemin du binaire rsync qui se trouve sur le NAS Synology comme argument de notre connexion.

Sous DSM5, le chemin de rsync est /usr/syno/bin/rsync.

A partir de DSM6, le chemin de rsync est /usr/bin/rsync, qui est le chemin habituel sous linux.

Nous ajoutons donc l’argument --rsync-path à notre connexion initiale, ce qui nous donne :

rsync --ignore-existing --progress -vr --rsh='ssh -p22222' --rsync-path=/usr/bin/rsync /home/backup/* root@example.com:/volume1/videoCode language: JavaScript (javascript)
Note: n’oubliez pas de changer le chemin suivant que vous utilisez DSM5 ou DSM6.

Et hop, la sauvegarde rsync est de nouveau fonctionnelle.