Rsync: rapatrier les fichiers du serveur à la maison photo 1, ET, phone home

Rsync: rapatrier les fichiers du serveur à la maison

Je vous ai déjà parlé de rsync pour transférer des fichiers d’un serveur à un autre.

Supposons maintenant que vous vouliez récupérer les fichiers qui sont sur votre serveur chez vous, à la maison.

Cela ne prend que quelques minutes à mettre en place et cela sert très souvent.

Etape 1 : ouvrir le port 22 dans la box ou le routeur

Rendez-vous dans l’interface d’administration de votre box ou routeur :

  1. si ce n’est déjà fait, attribuez une IP fixe à votre PC en identifiant l’adresse MAC de sa carte réseau.
  2. ouvrez le port 22 (SSH) en TCP et redirigez-le vers l’adresse fixe de l’étape précédente.

Voilà, le port est ouvert et redirigé au niveau du routeur.

Etape 2 : ouvrir le port 22 dans le firewall de la machine

Je suis sous Linux (Debian, Ubuntu, Mint…), j’utilise donc iptables en root :

iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT

Le port 22 est maintenant ouvert aux connections entrantes et sortantes sur la machine.

Lire la suite

screw-you-livebox

Serveur dédié : impossible de se connecter à un port distant

Aujourd’hui, je vérifie les services du serveur et me rend compte qu’il m’est impossible de me connecter aux services qui tournent sur des numéros de port non-standards.

Le problème : plus de connexion distante sur des ports exotiques

screw you livebox

J’essaie de comprendre pourquoi cela ne fonctionne plus : je bidouille à droite à gauche, vérifie vingt fois la configuration iptables, reboote deux fois le serveur, flush les données iptables et me fait jeter de ma connexion SSH…

Reboot du serveur, toujours aucune connexion sur les ports exotiques.

Plus d’accès aux torrents, à webmin, IMAP et autres. Tout cela alors que depuis le serveur, en local, tout était bien accessible.

Je n’avais pourtant rien modifié dans la configuration du serveur. Recherches sur internet pendant environ 4 heures.

Des gens semblent avoir le même problème sur des forums. Dernière réponse du sujet : “j’ai trouvé merci, c’est réparé”. Ces gars-là, je les hais. Ils ont le problème, semblent avoir la solution mais ils ne la partagent pas b*rdel!

La solution : vérifier le firewall client (routeur ou box)

En vacances, j’ai une Livebox. Et j’avais bidouillé le paramétrage du firewall de la livebox pour pouvoir utiliser rsync.

Donc la source du problème n’était PAS le firewall du serveur, c’était le firewall de la LIVEBOX :

livebox firewall medium

Cela pourra peut-être servir à quelqu’un : il faut mettre le firewall de la livebox au niveau “moyen”.

Comme par magie, tous les accès aux ports distants sont rétablis.

Android : personnaliser les sonneries et sons des notifications de votre smartphone photo

Android : personnaliser les sonneries et sons des notifications de votre smartphone

android notification sounds

Si vous possédez un téléphone sous Android et que vous vous lassez des sonneries des notifications par défaut, voici comment les changer et leur attribuer vos propres sonneries ou sons.

J’avais écrit un article similaire il y a quelques temps pour l’iPod/iPhone intitulé Ajouter des sonneries à un iPhone ou iPod Touch.

Celui-ci est donc le pendant pour les smartphones tournant sous Android.

Etape 1: Création des répertoires

Sur votre carte mémoire, depuis un navigateur de fichiers :

  1. à la racine de la carte mémoire, créez le répertoire /media/audio,
  2. créez /media/audio/notifications pour les sonneries de notifications,
  3. créez /media/audio/ringtonespour les sonneries d’appel,
  4. et enfin créez /media/audio/alarms pour les sonneries d’alarmes.

Voilà, vous pouvez désormais uploader vos sonneries personnelles dans ces répertoires.

Lire la suite

Bash : réparer les tables MySQL en cas de crash photo

Bash : supprimer tous les fichiers et sous-répertoires d’un répertoire

Bash

L’autre jour, je voulais faire un peu de ménage dans les logs mod_security du serveur dont le répertoire commençait à prendre de l’ampleur.

Je me suis donc demandé comment supprimer tous les fichiers et sous-répertoires d’un répertoire.

Je pensais m’en sortir avec un simple rm /dossier mais en fait la commande est un peu plus complexe. Il faut chercher tout ce qui appartient à ce répertoire avec find puis supprimer ce qui se trouve à sa racine.

Voici un exemple :

# supprime tous les fichiers et sous-dossiers du répertoire /home/logs/
find /home/logs/ -mindepth 1 -deleteCode language: PHP (php)

Si vous voulez juste voir la liste des fichiers et répertoires qui vont être supprimés, lancez la commande sans l’argument -delete :

# affiche la liste de tous les fichiers et sous-dossiers du répertoire
find /home/logs/ -mindepth 1Code language: PHP (php)

Si vous souhaitez supprimer non seulement les fichiers et sous-répertoires mais aussi le répertoire mentionné, omettez l’argument -mindepth 1

# supprime tous les fichiers et sous-dossiers ET le répertoire /home/logs/
find /home/logs/ -deleteCode language: PHP (php)

Lire la suite

Transférer des fichiers d'un serveur à un autre avec rsync sous Linux photo 1

Rsync : résoudre l’erreur “is your shell clean?”

Lors de l’utilisation de la commande rsync, il est possible d’obtenir le message d’erreur suivant :

TERM environment variable not set.
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(173) [sender=3.0.7]Code language: CSS (css)
rsync logo

Il s’agit la plupart du temps du fichier /~.bashrc qui n’est pas propre puisqu’il renvoie des informations au terminal.

Cela peut être dû à une commande qui donne des informations sur la date ou le système ou toute autre commande qui se lance à la connexion.

Rsync ne s’attend pas à cela et bloque.

Lire la suite

WordPress : éditer les liens de la base de données pour refléter le changement de structure des permaliens photo 1

WordPress : éditer les liens de la base de données pour refléter le changement de structure des permaliens

wordpress_icon_blue

Il y a quelques mois, je vous ai montré comment changer la structure des permaliens WordPress. Cela fonctionne très bien et tout le trafic des anciennes URL est bien redirigé vers les nouvelles.

Il est toutefois encore possible de faire mieux que cela : éditer toutes les URL de la base de données pour afficher les bons liens directement et éviter les redirections Apache à chaque fois qu’un visiteur clique sur un lien de vos anciens articles.

Cela évite une redirection donc permet d’afficher la bonne page directement, sans le temps de latence dû à l’exécution de mod_rewrite.

Etape 1 : sauvegarder votre base de données

On n’insistera jamais assez sur l’importance de sauvegarder les données avant d’effectuer une quelconque manipulation des données.

Commancez donc par faire une sauvegarde de votre base WordPress, vu que nous allons l’éditer en direct.

Lire la suite

FireFox : récupérer les onglets ouverts d'une session corrompue photo

FireFox : récupérer les onglets ouverts d’une session corrompue

Celles et ceux qui sont déjà venu(e)s chez moi savent que j’ai une utilisation de FireFox peu conventionnelle : quasiment 70+ onglets toujours ouverts en permanence et une liste de bookmarks qui rappelerait presque ce que Google indexe quotidiennement.

A chaque fois que je ferme le navigateur, il ferme les 70 onglets. Et les rouvre au démarrage suivant. Et aujourd’hui, au redémarrage : plus aucun onglet, juste la page de démarrage.

Bref, mon Firefox s’est planté et a perdu toute ma liste d’onglets ouverts. Et il est impossible de restaurer l’ancienne session.

firefox session error custom

Suivez le guide, tout n’est pas perdu.

Lire la suite

BIND9 : supprimer le message

BIND9 : résoudre l’erreur “ignoring out-of-zone data”

Bien configurer BIND9 pour que tout fonctionne correctement n’est pas vraiment intuitif et le parcours est semé d’embûches.

Sur mon ancien serveur OVH, j’ai connu l’erreur suivante pendant des mois :

/etc/bind/skyminds.net.hosts:15: ignoring out-of-zone data (ksXXXXXXX.kimsufi.com)

Alors bon, cela n’empêche pas du tout le serveur DNS de faire son travail mais c’est quand même un peu gênant de savoir que la configuration n’est pas optimale.

Voici comment y remédier.

Problème : BIND renvoie l’erreur “ignoring out-of-zone data”

Lors d’un checkconf BIND :

named-checkconf -z

Vous obtenez ceci :

/etc/bind/db.skyminds.net:15: ignoring out-of-zone data (ks3094174.kimsufi.com)
zone skyminds.net/IN: loaded serial 2011020911
zone localhost/IN: loaded serial 2
zone 127.in-addr.arpa/IN: loaded serial 1
zone 0.in-addr.arpa/IN: loaded serial 1
zone 255.in-addr.arpa/IN: loaded serial 1

Ce qui n’est pas vraiment optimal.

Lire la suite

Transférer des fichiers d'un serveur à un autre avec rsync photo

Transférer des fichiers d’un serveur à un autre avec rsync sous Linux

Il arrive très souvent que l’on ait besoin de transférer des fichiers rapidement, d’un serveur à un autre par exemple.

Bien sûr, on peut utiliser le FTP mais il y a beaucoup plus rapide et efficace : je vous présente rsync.[no_toc]

Synchronisation distante

rsync logo

rsync (remote synchronization ou “synchronisation distante” en français) est un logiciel libre de synchronisation de fichiers (disponible sous toutes les plateformes).

La synchronisation est unidirectionnelle, c’est-à-dire qu’elle copie les fichiers de la source en direction de la destination.

rsync est donc utilisé pour réaliser des sauvegardes incrémentales ou pour diffuser le contenu d’un répertoire de référence.

Je vous donne ici les deux commandes que j’utilise quotidiennement lors de ma gestion des serveurs.

Copier tous les fichiers d’un répertoire du serveur A dans le répertoire équivalent du serveur B

Premièrement, connectez-vous via SSH à votre serveur A. Voici la commande :

/* Copie tous les fichiers de /home/website/ vers serveur B. */
rsync --ignore-existing --progress /home/movies/*.* matt@serveurB.net:/home/movies/Code language: PHP (php)

Explications:

  • --ignore-existing signifie que si le fichier existe déjà, on ne le remplace pas.
  • --progress montre la vitesse du transfert et les noms des fichiers transférés.
  • matt@serveurB.net est le nom du login SSH (matt) associé à l’adresse du serveur B (IP ou nom de domaine).
  • /home/website/ : répertoire vers lequel copier les fichiers.

En lançant cette commande, je récupère sur le serveur B tous les fichiers qui se trouvent dans le répertoire /home/movies/ du serveur A. Je ne remplace pas les fichiers existants : étant donné que je ne synchronise qu’avec rsync, ce serait inutile.

Lire la suite

WordPress : récupérer la liste emails des membres et commentateurs photo

WordPress : afficher un shortcode dans un article, une page ou une template

wordpress_icon_blue

M’étant quelque peu arraché les cheveux pendant les vacances pour trouver comment afficher correctement un shortcode dans une template WordPress, voici comment afficher un shortcode dans un article, une page ou une modèle de page.

Cela me servira de référence ultérieure mais je suis certain que cela en aidera d’autres.

Créer un shortcode

Pour créer un shortcode, on crée une fonction puis le shortcode associé dans le fichier functions.php du thème WordPress :

/* Fonction */
function sky_hello_readers($content) {
return 'Hello readers !';
}

/* Création du shortcode avec add_shortcode() */
add_shortcode( 'hello', 'sky_hello_readers' );Code language: PHP (php)

Lire la suite

WordPress : récupérer la liste emails des membres et commentateurs photo

WordPress : retrouver le bouton “Publier”

Problème : plus de bouton “Publier” sous WordPress

wordpress_icon_blue Juste après la migration des bases MySQL, alors que je pensais que tout était bon, je vais sous WordPress pour raconter mes aventures et… plus de bouton “publier” mais un bouton “Soumettre à relecture” comme pour les guests ! Tout cela alors que je suis loggué comme admin, il y a un truc qui cloche.

Après avoir cherché un peu, il s’avère que j’ai copié directement les fichiers de bases de données mais que MySQL n’a pas les droits dessus. Du coup, toutes les tables sont en lecture seule, comme me l’a indiqué une petite requête simple :

Failed to save field : SQL alter table `wp_posts` modify `ID` bigint(20) unsigned not null default NULL auto_increment failed : Table 'wp_posts' is read only

Solution : attribuer les bases de données à mysql

Vous avez besoin de modifier les droits d’accès et d’écriture des fichiers de bases de données. Il faut soit se connecter à distance en SSH sur votre serveur ou en local sur votre machine et lancer la commande chown.

On se met donc dans le répertoire de travail de MySQL :

cd /var/lib/mysql/

et on attribue à l’utilisateur mysql les droits à nos bases de données :

chown -R mysql:mysql *

Lire la suite

MySQL: résoudre l'erreur

MySQL : résoudre l’erreur “Access denied for user debian-sys-maint@localhost”

Problème : l’erreur “Access denied for user debian-sys-maint@localhost” au lancement de MySQL

Lors de la migration de mes bases de données d’un serveur à l’autre, j’ai aussi déplacé la base mysql qui contient tous les utilisateurs, droits… pour ne pas avoir à tout refaire.

Le problème, c’est que chaque installation de MySQL crée un utilisateur de maintenance – debian-sys-maint sur notre serveur Debian – avec un mot de passe unique.

Solution : penser à copier /etc/mysql/debian.cnf

En copiant les bases de données, il faut également penser à copier le fichier /etc/mysql/debian.cnf dans lequel se trouve, entre autres, le mot de passe SQL de l’utilisateur spécial maintenance de Debian.

Lire la suite