10 octobre 2003

Réaliser une procédure de sauvegarde sous Mandrake.

Le but de l'opération est la réalisation d'une procédure réguliére de sauvegarde de son poste sous Linux Mandrake. La stratégie de sauvegarde choisie est la suivante :

  • Sauvegarde complète tous les samedis
  • Sauvegarde différentielle tous les jours sauf les samedis et les dimanches.

RQ: Les sauvegardes sont stokées sur une partition séparée, faute de mieux dans mon cas.

1. Téléchargement

On récupére la dernière version : http://flexbackup.sourceforge.net/

On choisira le fichier suffixé src.rpm

2. Installation

Pour le fun, on va reconstruire un RPM spécifique. Pour cela 2 méthodes :

Méthode 1 :

% sudo rpm --rebuild flexbackup-1.2.0-1.src.rpm

Méthode 2 :

% sudo rpm -i flexbackup-1.2.0-1.src.rpm
% cd /usr/src/RPM/SPECS/
% sudo rpm -bb flexbackup.spec

Ensuite on procède à l'installation :

% sudo /usr/sbin/urpmi flexbackup-1.2.0-1.noarch.rpm

3. Configuration

La configuration de flexbackup est concentrée dans le fichier /etc/flexbackup.conf

Je vais uniquement décrire les lignes que j'ai modifié par rapport à la configuration d'origine :


# utilisation de tar pour générer les archives.
$type = 'tar';

# Jeux de répertoire à archiver
$set{'maison'} = "/home";
$set{'system'} = "/etc /var";

# Lieu de stockage des sauvegardes
$device = '/data/flexbackup';

# Listes des répertoires à ignorer
$exclude_expr[0] = '.*/[Cc]ache/.*';
$exclude_expr[1] = '.*~$';
$exclude_expr[2] = '.*/\.backup/.*';
$exclude_expr[3] = '.*/\.thumbnails/.*';
$exclude_expr[4] = '.*/Corbeille/.*';
$exclude_expr[5] = '.*/trader-cache/.*';

# Je désactive la notion de "buffer"
$buffer = 'false';

4. Automatisation

Pour automatiser la sauvegarde, on ajoute 2 lignes dans /etc/crontab :


# sauvegarde différentiel du Lundi au Vendredi
30 1 * * 1-5 root (export PATH=/sbin:/bin:/usr/sbin:/usr/bin; /usr/bin/flexbackup -set all -differential)
# sauvegarde complète le samedi
30 1 * * 6 root (export PATH=/sbin:/bin:/usr/sbin:/usr/bin; /usr/bin/flexbackup -set all -full)

5. Rotation

FIXME

08 octobre 2003

Comment installer PEAR sous Window$ ?

Voici comment utiliser PEAR avec EasyPHP. Au moins depuis la version 1.6, EasyPHP fournit une version de PEAR. Malheureusement cette version est très ancienne, voir obsolète.
Voici donc une procédure (parmi d'autres) pour mettre à jour la "POIRE" :

Note : Je considère que EasyPHP a été installé dans le répertoire "C:\Program Files\EasyPHP"

INSTALATION

Etape 1 :

Renommer le répertoire C:\Program Files\EasyPHP\php\pear en C:\Program Files\EasyPHP\php\pear.old

Etape 1bis :

Exécuter le programme suivant "C:\Program Files\EasyPHP\phpini.exe"
cochez la dernière ligne (zlib.dll) cliquez sur valider puis quitter.

Etape 2 :

Sauvegardez la page http://go-pear.org/ dans le fichier "C:\Program Files\EasyPHP\www\go-pear.php"

Etape 3 :

Via votre navigateur, rendez-vous sur l'URL suivante http://localhost/go-pear.php

Etape 4 :

Lisez, cliquez sur NEXT

Etape 5 :

C'est l'étape clef, voici donc les paramètres adéquats :


0. HTTP proxy (host:port)
-----| http://votre_proxy:8080/ Remarque: laissez la deuxième case vide

1. Installation prefix
-----| c:\progra~1\easyphp\php\pear

2. Binaries directory
-----| $prefix

3. PHP code directory ($php_dir)
-----| $prefix\PEAR

4. Documentation base directory
-----| $php_dir\docs

5. Data base directory
-----| $php_dir\data

6. Tests base directory
-----| $php_dir\tests

7. PEAR Installer cache directory
-----| $php_dir\cache

8. Cache TimeToLive
-----| 300

9. Filename of WebFrontend
-----| $prefix\index.php

10. php.exe path, optional (CLI command tools)
-----| c:\progra~1\easyphp\php\php.exe

Etape 6 :

Cliquez sur INSTALL, et tout devrait bien ce passer !

UTILISATION

Maintenant, 2 méthodes vous permettent de gérer votre base PEAR, en ligne de commande et via un navigateur.
(en sachant que la seconde n'est pas encore considéré, par le PHP Group, comme stable)

1. En ligne de commande

Démarrer / Programme / Accessoires / Invite de commande
C:\>cd c:\progra~1\easyphp\php\pearC:\PROGRA~1\EasyPHP\php\pear>pear.bat

2. Via un navigateur

a. Ajouter dans le fichier C:\Program Files\EasyPHP\apache\conf\httpd.conf à la ligne 983 la ligne suivante :


Alias /pear/ "C:/Program Files/EasyPHP/php/pear/"

b. Éditez le fichier C:/Program Files/EasyPHP/php/pear/index.php et ajoutez le caractère anti-slash à la ligne 74 colonne 53

c. arretez puis redémarrer EasyPHP

d. Rendez-vous à l'URL suivante http://localhost/pear/

REMARQUE

Il est possible dans certain cas, que la configuration décrite en Etape 5 soit perdue.
Dans ce cas il ne vous reste plus qu'à la ressaisir soit un ligne de commande avec
"pear.bat config-set ..." soit à l'URL http://localhost/pear/index.php?command=config-show

CONCLUSION

Voilà, un peu lourd comme procédure, mais maintenant
vous n'avez plus d'excuse pour le pas utiliser
PEAR::DB, PEAR::MAIL, PEAR:XML_Parser etc...

07 octobre 2003

Comment configurer ssh ?

Voici une procédure très rapide pour configurer rapidement ssh. Vous êtes sur votre poste et vous souhaitez accèder de manière sécurisée à plusieurs machines distantes.

1. générer ses clés


% ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/thouveni/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/thouveni/.ssh/id_rsa.
Your public key has been saved in /home/thouveni/.ssh/id_rsa.pub.
The key fingerprint is:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
%

2. diffuser sa clé publique


% scp ~/.ssh/id_rsa.pub  MACHINE_DISTANTE:~/.ssh/authorized_keys2
id_rsa.pub           100% |*********************************************************************|   236       00:00    
% 

3. se connecter


% ssh MACHINE_DISTANTE
...

06 octobre 2003

Saisir uniquement sa passphrase au démarrage de sa machine ?

Si vous utilisez ssh, vous avez sûrement protéger vos clés à l'aide d'une passphrase. Ainsi, durant la durée de votre session ssh, vous n'avez plus à saisir de mot de passe.

Mais comment faire pour que votre session ssh démarre en même temps que votre connexion sur votre poste.

Sous Linux

Vous aurez besoin du package suivant ssh-askpass, ainsi que ses dépendances...

Ensuite je conseille de créer un petit fichier contenant ceci :


#!/bin/sh
# mypassphrase.sh

ssh-add < /dev/null

Enfin, il vous reste à exécuter ce tout petit script à chaque démarrage. Par exemple, si vous utilisez KDE, placez ce script dans le répertoire :

$HOME/.kde/AutoStart

Sous Windows avec Cygwin

Tout d'abord, vérifiez que vous avez installé les packages openSSL. Ensuite, vous devez ajouter les lignes suivantes à votre fichier «.profile» (ou «.bash_profile»)


# {{{ SSH-AGENT
export SSH_AUTH_SOCK=/tmp/.ssh-socket

ssh-add -l 2>&1 >/dev/null
if [ $? = 2 ]; then
   # Exit status 2 means couldn't connect to ssh-agent; start one now
   ssh-agent -a $SSH_AUTH_SOCK >/tmp/.ssh-script
   . /tmp/.ssh-script
   echo $SSH_AGENT_PID >/tmp/.ssh-agent-pid
   ssh-add
fi

function kill-agent {
   pid=`cat /tmp/.ssh-agent-pid`
   kill $pid
}
# }}}

Après ceci, vous devez créer une variable d'environnement windows (Poste de Travail / Propriétés / Avancé )

http://www.touv.fr/IMG/png/ssh-cygwin.png

La commande kill-agent vous permet, comme son nom l'indique , de tuer votre session SSH.

Référence

01 octobre 2003

Comment être root sans taper de mot de passe ?

Il est parfois utile d'exécuter une commande avec les droits de "root". La méthode, généralement utilisée, consiste à se loguer root puis on execute la commande voulue.

Et bien, on peut faire plus simple avec l'utilitaire "sudo", exemple :


% whoami 
thouveni
% sudo whoami
root
%

Pour cela il faut créer le fichier /etc/sudoers comme ceci :


# User alias specification
User_Alias ROOT_LIKE=thouveni

# User privilege specification
root    ALL=(ALL) ALL
ROOT_LIKE ALL=(ALL) NOPASSWD: ALL