Articles plus anciens

Dans mon article sur rSnapshot j’ai indiqué qu’il existait une « ruse » sous VIM pour afficher les caractères cachés.

Ce qui dans le cas du fichier de configuration de rSnapshot est très util puisque l’on peut ainsi s’apercevoir quand on a mit des espaces au lieu des tabulations attendus.


Donc revenons à VIM, la commande magique est (dans VIM) :

:set list


Ce qui devrait faire passer l’affichage d’un fichier de :


VIM sans les caractères invisibles

VIM sans les caractères invisibles


A :



VIM avec les caractères invisibles

VIM avec les caractères invisibles



Pour revenir en arrière il suffit, dans VIM toujours, de saisir :

:set list!


Dans le paramétrage par défaut on à les caractères spéciaux de défini ainsi :

  • Tabulation : ^I
  • Saut de ligne : $

Mais on peut personnaliser ces caractères avec la commande set listchars.


Les caractère spéciaux invisibles personnalisables sont :

  • Saut de ligne : eol
  • Tabulation : tab
  • Espaces de fin de ligne : trail
  • Espace insécable : nbsp

Et 2 autres que je n’ai pas réussi à faire afficher :

  • Débordement à droite de la ligne par rapport à l’écran : extends
  • Débordement à gauche de la ligne par rapport à l’écran : precedes


La commande set listchars peut être saisie dans VIM directement (comme le set list) en la précédant d’un « : », mais cela peut être fastidieux de la retaper à chaque fois.

Il est donc préférable de la définir dans le vimrc (je parlerais plus longuement de ce fichier de paramétrage dans un autre article).

sudo vim /etc/vim/vimrc

Voici mon listchars :

set listchars=nbsp:¤,tab:>-,trail:¤,extends:>,precedes:<,eol:¶,trail:·


Ce qui donne :


VIM avec les caractères invisibles personnalisés

VIM avec les caractères invisibles personnalisés




A noter pour les espaces de fin de ligne ce n’est pas un . mais un · (caractère ASCII 183), si vous saisissez un point cela plantera la configuration VIM.


On peut évidemment aussi mettre la commande set list dans le vimrc mais personnellement je préfère l’activer à la demande directement dans VIM.


Source :
http://blog.gnusquad.org/2009/07/24/afficher-les-caracteres-speciaux-dans-vim/

Pour saisir des caractères ASCII dans VIM il suffit de faire :

CTRL + V puis de saisir le code ASCII en décimal sur 3 digit.

Exemple :

CTRL + V 164 : ¤
CTRL + V 183 : ·
CTRL + V 182 : ¶
CTRL + V 169 : ©


On verra l’utilité de pouvoir saisir ces caractères dans le prochain article ….


PS :

Pour avoir ces caractères sous windows (dans le bloc-note par exemple), il faut faire ALT + code ASCII en décimal sur 4 digits (mettre un 0 en plus).

Où la méthode non-geek, passer par la tables des caractères (Accessoires > Outils systèmes)

Source :
http://vimdoc.sf.net/cgi-bin/vimfaq2html3.pl#12.30



Suite de mes périgrinations avec la sortie S-vidéo de ma carte Intel D945GCLF2.


N’ayant pas d’entrée S-vidéo sur ma télé 4/3 CRT Philips, j’ai dans un premier temps branché sweetBox sur la prise péritel via un adaptateur S-vidéo – Peritel comme celui-ci :


Convertisseur S-video - Péritel (SCART)

Convertisseur S-video - Péritel (SCART)


Et après avoir bataillé avec mon fichier xorg.conf pour avoir une image, quel ne fut pas ma décéption quand à la qualité de cette image :

  • couleurs fades
  • zone marron / grise dès que du texte en blanc est affiché (exemple les sous titres)
  • artefact de couleurs sur les zones de fort contraste (texte par exemple)


Déçu, j’en venais presque à regretter l’achat de cette carte (D945GCLF2).


En désespoir de cause et ayant une commande à faire sur DealExtreme, j’ai commandé un adaptateur S-video – composite (RCA) :

Adaptateur S-video - composite (RCA)

Adaptateur S-video - composite (RCA)

Lien vers la page DealExtreme où j’ai emprunté l’image : http://www.dealextreme.com/details.dx/sku.4723


2-3 semaines plus tard, je branche fébrilement mon nouveau cable tout juste reçu, reboot sweetBox et là miracle, une image flashy, franche, net, bref parfaite compte tenu de ma télé.



Conclusion :

La péritel est vieille et dépassé, toujours favoriser le RCA ou le S-vidéo.



SweetBox à plusieurs rôles :


Le dernier (à l’heure actuelle) rôle de sweetBoxest un rôle de serveur de sauvegarde.


Cet article est le premier d’une série destinée à décrire les configurations mises en œuvre pour remplir ce rôle.

On s’attachera ici à décrire ce que l’on entend par sauvegarde, présenter quelques logiciels de sauvegarde disponibles sous Linux et présenter celui choisi.



La sauvegarde consiste à dupliquer (au moins) des données que l’on estime importante (par exemple ses photos numériques)

J’ai indiqué au moins suite au mot dupliquer puisque généralement on réalise n copies que l’on fait tourner sur un certain nombre de jour, semaine, mois au année



Le logiciel de sauvegarde sous linux sont nombreux, du plus rustique comme un script maison à base de rsync, au plus évolué comme backupPC.

cf. http://doc.ubuntu-fr.org/sauvegarde


Après étude certain d’entre eux, mon choix s’est port sur rSnapshot pour les raisons suivantes :

  • ligne de commande donc plannifiable aisément en tache Cron
  • gère les diverses copie via des hardlink (espace disque gagné)
  • pas surdimensionné comme BackupPC qui se destine à des infra-structure plus conséquentes
  • utilise rsync qui ne synchronise que les différences
  • fichiers sauvegardés directement accessibles dans une arborescence





Installation


Elle se fait simplement, rsnapshot étant dans les dépots Ubuntu

sudo aptitude install rsnapshot


Ce package à une dépendance vers le méta-package SSH.



Paramétrage de base


Tout le paramétrage de rsnapshot se fait dans un fichier unique, un exemple de fichier est fournis dans /etc/rsnapshot.conf mais je préfère en créer un nouveau dans le home de mon utilisateur lançant les sauvegarde et de le spécifier à rsnpashot à l’exécution avec le paramètre -c.


Un caractéristique très importante de ce fichier de configuration la séparation entre la clé et la valeur doit absolument être une tabulation (à ce propos il existe une astuce VIM permettant de visualiser les caractères spéciaux dont les tabulations, ce sera l’objet d’un prochain post) 



Ci dessous mon fichier de configuration :


config_version 1.2
snapshot_root /data/sauvegardes/
#no_create_root 1
cmd_cp /bin/cp
cmd_rm /bin/rm
cmd_rsync /usr/bin/rsync
cmd_ssh /usr/bin/ssh
cmd_logger /usr/bin/logger
cmd_du /usr/bin/du
cmd_rsnapshot_diff /usr/bin/rsnapshot-diff
#cmd_preexec    /path/to/preexec/script
#cmd_postexec    /path/to/postexec/script
exclude .gvfs
interval daily 7
interval weekly 4
interval monthly 2
verbose 2
loglevel 3
logfile /var/log/svc/rsnapshot.log
lockfile /var/lock/rsnapshot.pid
rsync_long_args --delete --numeric-ids --delete-excluded
ssh_args -o BatchMode=yes
backup mon_user@sweethome:/home 


Je ne décrirais pas ici les spécificités de ce dernier (exlude) mais uniquement les généralités.


snapshot_root :

Chemin où seront stockés les sauvegardes


no_create_root :

indique qu’il ne faut pas créer le chemin indiqué ci-dessus si il n’existe pas


cmd_xxx :

indique les chemin des différents outils standards utilisés par rSnapshot. Ces chemin pouvant varier d’une distribution à une autre il est conseillé de tous les vérifier.

Concernant les 2 derniers (cmd_pre/postexec)cela permet d’éxécuter un script spécifique avant et/ou après la sauvegarde


interval :

Source de confusion chez de nombreuses personnes, on défini ici un groupe de sauvegarde, la synthaxe est la suivante :

interval      nom_groupe       nombre_de_sauvegarde_de_ce_groupe_a_garder


Les groupes définis par défaut par rSnapshot sont ceux indiqués dans mon fichier.

On a défini 3 groupes : daily pour lequel on garde 7 jeux de sauvegarde (comme les 7 jours d’une semaine), weekly avec 4 jeux (4 semaines dans un mois) et monthly avec 2 jeux de sauvegarde.


La confusion vient du fait que les groupes portent des noms d’interval de temps faisant que nombre de personnes pensent que rSnapshot réalisera lui-même la plannification des sauvegardes.

Mais non, il vous  faut plannifer vos sauvegarde, l’éxécution de rSnapshot à interval régulier via Cron par exemple.


Pour pousser la demonstration on peut même envisager de plannifier rSnapshot toutes les heures avec le groupe daily (ce qui est absurde).



Concernant le nombre de jeu de sauvegarde gardé par groupe, prenons un exemple :

interval      toto      3


Le premier lancement de rsnapshot créera un répertoire toto.0 dans snapshot_root puis réalisera la sauvegarde dans ce répertoire.

rsync --> toto.0


Lorsque l’on lancera une deuxième fois rSnapshot avec le groupe toto, le répertoire toto.0 sera renomé en toto.1.

Un copie de toto.1 en toto.0 sera réalisée en faisant des hardlinks (cp -al) ainsi seuls les fichiers différents (aucun a ce moment du process de sauvegarde)  seront stockés en 2 endroits du disque.

Ensuite rsync sera appellé pour sauvegarder les différences dans toto.0.

rsync --> toto.0 --> toto.1


Au 3ème appel de rSnapshot avec le groupe toto, on aura le même process :

rsync --> toto.0 --> toto.1 --> toto.2


Enfin dernier cas lors du 4 ème appel, vue que l’on a configuré le groupe toto pour ne garder que 3 jeux de sauvegarde on aura :

rsync --> toto.0 --> toto.1 --> toto.2 --> poubelle


Et ainsi de suite…


 logfile et lockfile :

Pas grand-chose à dire si ce n’est que l’utilisateur lançant rSnapshot doit avoir le droit décrire dans les fichiers / répertoires.


backup :

Ces ici que l’on configure ce que l’on doit sauvegarder, la synthaxe sera différente selon la source de la sauvegarde, mais dans le cas le plus simple on aura :

backup     source    destination


La source pourra être une source locale (/etc, /home, etc), distante montée localement (via samba ou NFS) ou distante via SSH (fera l’objet d’un post).

La destination est optionnelle, si on l’omet les fichier et sous répertoire seront copié directement dans le répertoire nom_du_groupe.0/1/2/x, sinon un sous-répertoire sera créé.


Exécution

L’exécution de rSnapshot se fait avec un simple :

rsnapshot -v -c fichier.conf nom_groupe_executer


Il ne reste plus qu’ensuite à plannifier en tache cron les différents groupes définis dans le fichier de configuration, ce qui mon exemple pourrait donner :  

0 1    * * *           root    rsnapshot -v -c fichier.conf daily
0 1    * * 1           root    rsnapshot -v -c fichier.conf weekly
0 1    1 * *           root    rsnapshot -v -c fichier.conf monthly



Edit :

Suppression de l’argument rsync-path (plus nécessaires), correction de la ligne de commande pour exécuter rSnapshot (-cv ne fonctionne pas)


Sources :

http://www.rsnapshot.org/

http://geekfault.org/2009/05/16/rsnapshot/

http://softsolder.wordpress.com/2009/04/25/backup-with-rsnapshot/

http://www.tomsquest.com/blog/humeur-fcron-et-rsnapshot-la-doc-et-les-exemples/

http://km.azerttyu.net/Sauvergarder-son-serveur.html




Lors de ma ré-installation de sweetBox (HTPC), je me suis heurté à un problème de synchronisation de l’image.


Il existe en effet un bug connu dans les driver Intel sous Ubuntu (package xserver-xorg-video-intel), qui se traduit par l’image qui n’arrête pas defiler de bas en haut dès lors que l’on utilise la sortie S-video.


Après quelques recherches sur Internet, j’ai trouvé la solution, il suffit d’installer la nouvelle version du package xserver-xorg-video-intel qui n’est pas disponible dans les dépots de Jaunty mais qui à été backporté de Karmic.


La version par défaut de ce package sous Jaunty est 2.6.3-0ubuntu9.3, et il faut installer la 2.7.1-0ubuntu1~xup~1.



Pour cela ajouter dans votre fichier /etc/apt/source.list le dépôt suivant :

deb http://ppa.launchpad.net/ubuntu-x-swat/x-updates/ubuntu jaunty main
deb-src http://ppa.launchpad.net/ubuntu-x-swat/x-updates/ubuntu jaunty main


Ajouter la clé du dit dépôt :


sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 643DC6BD56580CEB1AB4A9F63B22AB97AF1CDFA9



Et simplement faire un update, upgrade.

sudo aptitude update
sudo aptitude safe-upgrade


Et voila, le tour est joué vous venez d’installer les nouveau drivers et de résoudre ce problème.



Il faut ensuite vous mitonner un petit xorg.conf, pour gérer correctement l’affichage via la sortie S-Vidéo.

sudo vim /etc/X11/xorg.conf


Chez moi sur un télé CRT 4/3 de 72cm  ça donne :

Section "Device"
        Identifier      "Configured Video Device"
EndSection
Section "Monitor"
        Identifier      "Configured Monitor"
EndSection
Section "Monitor"
        Identifier      "TV"
        Horizsync       30.0    -       70.0
        Vertrefresh     50.0    -       160.0
        Option  "Ignore" "false"
        ModeLine "768x576"     50.00  768  832  846 1000   576  590  595  630
EndSection
Section "Screen"
        Identifier      "Default Screen"
        Monitor         "TV"
        Device          "Configured Video Device"
        Defaultdepth    24
        SubSection "Display"
                Depth   24
                Modes           "800x600"
        EndSubSection
EndSection



Malgré tout cela je me heurte toujours à un petit problème aléatoire. Lors de certain boot le serveur X (appellé par Freevo) refuse de se lancer parcequ’il ne trouve pas d’écran :

(WW) intel(0): No outputs definitely connected, trying again...
(II) intel(0): Output VGA disconnected
(II) intel(0): Output TV-1 disconnected
(WW) intel(0): Unable to find initial modes
(EE) intel(0): No valid modes.
(II) UnloadModule: "intel"
(II) UnloadModule: "vgahw"
(II) Unloading /usr/lib/xorg/modules//libvgahw.so
(EE) Screen(s) found, but none have a usable configuration.

Fatal server error:
no screens found


Je n’ai à l’heure actuelle pas la solution, dans ces cas là soit je reboot, soit démarre manuellement freevo via le script d’init.



Sources :

http://ubuntuforums.org/showthread.php?t=993136

http://forum.linuxmce.org/index.php?topic=6270.0

Le launchpad du backport des pacakges X

https://launchpad.net/~ubuntu-x-swat/+archive/x-updates/

Note de sortie de la version 2.7.0 du package xserver-xorg-video-intel

http://archive.netbsd.se/?ml=xorg&a=2009-04&t=10387848