Archive for novembre, 2010

Suivre les logs systèmes en temps réel avec tail sous gnu/linux

Console - terminalUn atout dans les systèmes GNU/Linux, c’est principalement la « verbosité » du système.

Cela signifie, que lorsque vous avez un système GNU/Linux installé, soit sur votre machine, soit sur un serveur distant, vous pouvez consulter en temps réel les informations renvoyées par le système (dans une console / fenêtre terminal en local, ou connecté en SSH à un serveur distant).

Ce post s’adresse évidemment à un niveau plutôt débutant.

Les principales remontées d’informations sont les logs systèmes, le plus généralement inscrits dans le fichier /var/log/messages.

Pour suivre l’activité du fichier, vous allez pouvoir utiliser la commande « tail » comme ceci :
[bash]tail -f /var/log/messages[/bash]

Avec cette commande, les informations vont défiler automatiquement sur la sortie standard (votre console). Pour interrompre la consultation, pressez :
CTRL+C (les 2 touches en même temps).

Vous pouvez également conserver le processus actif, et reprendre la main sur la console, en plaçant le processus en arrière plan :
Lancement de la commande :
[bash]tail -f /var/log/messages[/bash]
Presser CTRL+Z (passage en arrière plan, en pause)
Taper : bg
La tache reste active en arrière plan (background).

Vous noterez qu’après avoir pressé CTRL+Z, la tache est numérotée [1] (ici 1, la première en arrière plan), et se retrouve à l’état « Stopped ». C’est en tapant « bg » et en validant, que la tache devient active.
Vous pouvez ainsi taper d’autres commandes, tout en ayant la visibilité sur les logs. Notez que les logs s’affichent quoi que vous fassiez, ce qui peut parasiter si vous être en train de taper autre chose.

L’intérêt de la chose, est, par exemple, de pouvoir monitorer en temps réel plusieurs fichiers de log, et pouvoir agir.

Par exemple, je veux surveiller en même temps mes logs systèmes, et mes logs apache (serveur web httpd) lorsque je le relance pour voir si tout va bien.

On part du principe qu’on est connecté en root (ou sudo bash) dans le terminal :
Analyse des logs système :
[bash]tail -f /var/log/messages[/bash]
Puis je presse CTRL+Z
Activation de la tâche en arrière plan :
taper : bg
Analyse simultanée des logs apache :
[bash]tail -f /var/log/httpd/error_log[/bash]
Passage en arrière plan : CTRL+Z
Activation de cette autre tâche en arrière plan :
bg
(vous noterez le petit [2] indiquant qu’il s’agit de la deuxième tâche tournant en arrière plan).
Puis je relance mes services pour voir ce que ça donne :
[bash]/etc/init.d/httpd restart[/bash]
(Vous aurez évidemment apache d’installé sur votre machine pour cet exemple !).

Vous verrez donc défiler les informations « habituelles » de redémarrage du service, et les logs générés par tout ceci.

Enfin, car vous allez en avoir besoin, il faut ramener les tâche en premier plan afin de pouvoir les interrompre !
Vous pouvez donc rappeler vos processus, soit simplement via la commande « fg » (foreground) comme ceci :
[bash]fg[/bash]
Soit en appelant la commande voulue par son numéro :
[bash]fg 1[/bash]
Puis il suffit de presser CTRL+C pour interrompre la tâche. Répétez la commande « fg » jusqu’à avoir le message :
[bash]bash: fg: current : tâche inexistante[/bash]
C’est bon il ne reste aucun processus en arrière plan !

Ceci est évidemment utilisable avec tous les logs renvoyés par le système, que vous trouvez généralement dans le dossier /var/log.

S’il vous arrive par erreur d’utiliser la commande « tail » sur un binaire (un programme), l’environnement de votre console peut être « chamboulé » et les caractères affichés devenir illisibles. Dans ce cas, appuyez sur CTRL+C et tapez la commande
[bash]reset[/bash]
(même si les caractères ne s’affichent pas correctement) et la situation devrait être rétablie.

J’espère que ce petit article pourra être utile à certains.

Source image : http://www.openclipart.org/detail/25561

Loading

Tags: , , , , , , , , , ,

mardi, novembre 2nd, 2010 Bash, GNU - Linux, Reseau, Technologie 5 Comments

Utiliser rsync sur ssh pour copier-synchroniser des données

Rsync over sshL’utilisation de rsync permet de gagner du temps et d’économiser de la bande passante en ne transférant que les éléments modifiés d’un dossier à l’autre.

Rsync, comme la commande tar (tape archive), permet de conserver les attributs sur les fichiers et donc, assure une réplication parfaite d’un dossier vers un autre, ou encore d’un serveur vers un autre.

Rsync peut être utilisé en local, d’un dossier à un autre, pour copier des fichiers, ou à distance avec un serveur rsync (rsyncd) sur lequel on s’authentifie pour effectuer la synchronisation (par défaut sur le port 873).

Dans le cas présent, on va utiliser RSYNC sur SSH, qui présente l’avantage d’utiliser un service installé souvent par défaut (souvent), et ne demande pas de configuration autre que l’utilisation du SSH en place.

Nous avons donc une machine1 et une machine2 toutes 2 sous GNU/Linux avec SSH installé, et ssh en demon sur la machine2 (sshd – openssh-server).

On veut donc copier/synchroniser depuis machine1 notre dossier /home/mondossierlocal sur machine2 dans /home/mondossier également :
[bash]rsync -avze ssh /home/mondossierlocal/ root@machine2:/home/mondossier/[/bash]

On peut effectuer la même opération dans l’autre sens, synchroniser /home/mondossier de machine2, vers /home/mondossierlocal de la façon suivante :
[bash]rsync -avze ssh root@machine2:/home/mondossier/ /home/mondossierlocal/[/bash]

Note : ne pas oublier les / (slash) en fin de ligne, sinon la synchronisation ne s’effectuera pas au bon endroit !

On a l’avantage ici de pouvoir utiliser rsync pour la synchronisation distante de fichiers, dans un lien sécurisé, alors que le protocole rsync n’est lui pas crypté. On peut donc se passer d’un VPN dans ce cas.

Sources :
http://oreilly.com/pub/h/38
http://troy.jdmz.net/rsync/index.html
https://help.ubuntu.com/community/rsync
http://www.cyberciti.biz/tips/linux-use-rsync-transfer-mirror-files-directories.html

Loading

Tags: , , , , ,

lundi, novembre 1st, 2010 Bash, GNU - Linux, Reseau, Technologie Aucun commentaire

Utiliser tar sur ssh pour dupliquer des données (redirection tar sur ssh)

Utiliser tar sur ssh pour dupliquer des données (redirection tar sur ssh)

Voici un simple petit mémo pour l’utilisation de tar au travers de SSH.

L’idée est simple : utiliser la commande TAR pour répliquer un dossier d’une machine linux vers une autre.

L’intérêt est le maintient des attributs des fichiers et dossiers, en effectuant une copie à distance via un canal sécurisé.

Dans une console, il suffit de taper la commande suivante :

[bash]tar -cf – /mon_dossier_1 /dossier/dossier_2 | ssh -2 user@votre-serveur.com tar -xf – -C /dossier_de_destination/sur_serveur_distant/[/bash]

Ici, la commande va reproduire les dossiers « /mon_dossier_1 » et « /dossier/dossier_2 » dans le dossier « /dossier_de_destination/sur_serveur_distant/ » sur le serveur qui reçoit les données. Le -2 permet de forcer l’utilisation de SSH en version 2 qui est bien plus sécurisé que ssh 1.

C’est très intéressant pour copier un dossier home d’un utilisateur par exemple. Dans le cas ou vous utilisez une authentification basée sur clés SSH, vous n’aurez même pas de mot de passe à saisir.

Loading

Tags: , , , ,

lundi, novembre 1st, 2010 Bash, GNU - Linux, Reseau Aucun commentaire