<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
	<title>BlogoFlip</title>
	<link>http://www.blogoflip.fr/</link>
	<language>fr</language>
	<description>Des tranches de ma vie entre deux fautes d&#039;orthographe sans sel ni poivre.</description>
<atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://www.blogoflip.fr/feed.php" />
	<lastBuildDate>Wed, 02 May 2012 19:44:00 +0200</lastBuildDate>
	<generator>PluXml</generator>
	<item>
		<title>En travaux</title> 
		<link>http://www.blogoflip.fr/article135/en-travaux</link>
		<guid>http://www.blogoflip.fr/article135/en-travaux</guid>
		<description>&lt;a href=&quot;http://www.blogoflip.fr/data/images/decors/travaux.jpg&quot;&gt;&lt;img src=&quot;http://www.blogoflip.fr/data/images/decors/travaux.tb.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;Le site est en plein changement donc quelques trucs s&#039;affichent de travers ou marchent mal... Patience.&lt;br /&gt;</description>
		<pubDate>Wed, 02 May 2012 19:44:00 +0200</pubDate>
		<dc:creator>flipflip</dc:creator>
	</item>
	<item>
		<title>PluXml, formulaire d&#039;authentification</title> 
		<link>http://www.blogoflip.fr/article134/pluxml-formulaire-d-authentification</link>
		<guid>http://www.blogoflip.fr/article134/pluxml-formulaire-d-authentification</guid>
		<description>&lt;p&gt;Pour un projet j&#039;ai eu besoin de permettre l&#039;authentification des utilisateurs depuis la partie public de PluXml.&lt;br /&gt;
Pour l&#039;installation je vous laisse regarder dans le fichier d&#039;aide fourni avec le plugin.&lt;/p&gt;

&lt;p&gt;Télécharger : &lt;a href=&quot;http://www.blogoflip.fr/?static8/mes-plugins-pluxml&quot;&gt;http://www.blogoflip.fr/?static8/mes-plugins-pluxml&lt;/a&gt;&lt;/p&gt;</description>
		<pubDate>Thu, 12 Apr 2012 16:41:00 +0200</pubDate>
		<dc:creator>flipflip</dc:creator>
	</item>
	<item>
		<title>Connexion à un domaine depuis un pc hors domaine</title> 
		<link>http://www.blogoflip.fr/article133/connexion-a-un-domaine-depuis-un-pc-hors-domaine</link>
		<guid>http://www.blogoflip.fr/article133/connexion-a-un-domaine-depuis-un-pc-hors-domaine</guid>
		<description>&lt;p&gt;J&#039;ai été confronté à un problème particulier avec mon contrôleur de domaine. Depuis la migration en Samba 3.5.4 les machines ne faisant pas partie du domaine mais dont les utilisateurs possèdent un compte domaine n&#039;étaient plus reconnu automatiquement.&lt;/p&gt;&lt;p&gt;Dans le fenêtre de demande du nom d&#039;utilisateur / mot de passe il fallait ajouter MonDomain\nom d&#039;utilisateur. Pas très pratique surtout pour certaine application ou il est difficile de mettre en place une gestion de connexion.&lt;/p&gt;

&lt;p&gt;Après pas mal de recherche j&#039;ai découvert que c&#039;est un comportement qui a changé depuis Samba 3.4 avec l&#039;option&lt;/p&gt;
&lt;pre&gt;map untrusted to domain = no&lt;/pre&gt;
&lt;p&gt;Si vous la passez à yes vous retrouver le comportement d&#039;avant. Plus d&#039;informations : &lt;a href=&quot;http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html#MAPUNTRUSTEDTODOMAIN&quot;&gt;http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html#MAPUNTRUSTEDTODOMAIN&lt;/a&gt;&lt;/p&gt;</description>
		<pubDate>Tue, 03 Apr 2012 14:52:00 +0200</pubDate>
		<dc:creator>flipflip</dc:creator>
	</item>
	<item>
		<title>OVH HuBic en ligne de commande</title> 
		<link>http://www.blogoflip.fr/article132/ovh-hubic-en-ligne-de-commande</link>
		<guid>http://www.blogoflip.fr/article132/ovh-hubic-en-ligne-de-commande</guid>
		<description>&lt;p&gt;Après l&#039;article expliquant comment faire des &lt;a href=&quot;http://www.blogoflip.fr/?article131/sauvegarde-sur-le-ftp-d-ovh&quot;&gt;backup sur le FTP&lt;/a&gt; offert par OVH je vais vous expliquer comment faire la même chose sur la nouvelle offre &lt;a href=&quot;http://www.ovh.fr/hubiC/&quot;&gt;HubiC&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Je ne rentrerais pas dans le détail de ce qu&#039;est HubiC, aller sur le site d&#039;OVH pour en savoir plus. Après avoir créé et validé votre compte nous allons partir à la pêche aux informations. L&#039;idée est de récuperer vos identifiants pour accéder à la couche CloudNAS d&#039;OVH. J&#039;ai trouvé deux scripts :
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.protocol-hacking.org/post/2012/01/29/Hubic%2C-maintenant-vraiment-ubiquitous&quot;&gt;http://www.protocol-hacking.org/post/2012/01/29/Hubic%2C-maintenant-vraiment-ubiquitous&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bitbucket.org/rangzen/hubicli&quot;&gt;https://bitbucket.org/rangzen/hubicli&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
Le premier est en perl et le second en python. J&#039;ai pas réussi à faire fonctionner celui en perl sans installer un tas de paquets donc je suis partie sur la version python.&lt;/p&gt;
&lt;p&gt;Télécharger le script
&lt;pre&gt;git clone https://bitbucket.org/rangzen/hubicli.git
cd hubicli/
python hubiC.py&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Votre nic-handle et votre mot de passe vous est demandé et en réponse vous obtenez :&lt;br /&gt;
&lt;pre&gt;URL      : https://cloudnas1.ovh.com/6z9affd86ee8486468b17be15938b82a/
Login    : xxxxxx
Password : xxxxxx

mount -t davfs  https://cloudnas1.ovh.com/6z9affd86ee8486468b17be15938b82a/ /mnt
umount /mnt&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;Pour tester aller &lt;br /&gt;
&lt;pre&gt;cd /media
mkdir hubic
mount -t davfs  https://cloudnas1.ovh.com/6z9affd86ee8486468b17be15938b82a/ /media/hubic&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Renseigner le champs login et password avec les informations donnés par le script. Normalement votre répertoire devrait être monté&lt;/p&gt;

&lt;p&gt;Vous avez plus qu&#039;à lancer votre transfert de fichier. J&#039;en ai profité pour faire évoluer mon &lt;a href=&quot;http://www.blogoflip.fr/?article127/gestion-des-sauvegardes-avec-rsync&quot;&gt;script de sauvegarde&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;La grosse différence entre la méthode ftp et webdav est le temps de transfert. En ftp j&#039;avais de gros ralentissement et certaines commandes systèmes n&#039;étaient pas prise en compte (chown par exemple ou encore conserver les users/groupes envoyé par rsync). En webdav plus de problème.</description>
		<pubDate>Tue, 27 Mar 2012 13:44:00 +0200</pubDate>
		<dc:creator>flipflip</dc:creator>
	</item>
	<item>
		<title>Sauvegarde sur le ftp d&#039;OVH</title> 
		<link>http://www.blogoflip.fr/article131/sauvegarde-sur-le-ftp-d-ovh</link>
		<guid>http://www.blogoflip.fr/article131/sauvegarde-sur-le-ftp-d-ovh</guid>
		<description>&lt;p&gt;Avec ces offres serveurs &lt;a href=&quot;http://www.ovh.com&quot;&gt;OVH&lt;/a&gt; propose un espace de backup gratuitement de 100Go, en tout cas pour la gamme &lt;a href=&quot;http://www.kimsufi.com/fr/&quot;&gt;Kimsufi&lt;/a&gt;. Cet espace est accessible uniquement par ftp et depuis votre serveur. Le ftp c&#039;est bien mais comment faire pour automatiser les sauvegarde avec la contraintes de ne transférer que ce qui a été modifier et gérer une durée de rétention ? Pas facile à faire en ftp. L&#039;idée est d&#039;utiliser &lt;a href=&quot;http://curlftpfs.sourceforge.net/&quot;&gt;curlftpfs&lt;/a&gt; ensuite votre espace ftp sera vue dans un point de montage comme tout autres disques&lt;/p&gt;&lt;p&gt;Sur Debian pour installer curlftpsf c&#039;est&lt;br /&gt;
&lt;pre&gt;aptitude install curlftpfs&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;Petit test en console&lt;br /&gt;
&lt;pre&gt;mkdir /media/backup
curlftpfs login:password@serveur /media/backup&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;Le point de montage /media/backup correspond à votre espace ftp, vous pouvez en faire ce que vous voulez.&lt;/p&gt;

&lt;p&gt;Montage automatique au lancement du serveur&lt;br /&gt;
&lt;pre&gt;vim /etc/fstab&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;Ajouter cette ligne en l&#039;adaptant&lt;br /&gt;
&lt;pre&gt;curlftpfs#login:password@serveur	/media/backup	fuse	rw,user,allow_other,_netdev	0	0&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;Voila vous avez plus qu&#039;à utiliser votre script de backup ou alors celui que je propose dans l&#039;article &lt;a href=&quot;http://www.blogoflip.fr/?article127/gestion-des-sauvegardes-avec-rsync&quot;&gt;Gestion des sauvegardes avec rsync&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mise à jour : &lt;a href=&quot;http://www.blogoflip.fr/?article132/ovh-hubic-en-ligne-de-commande&quot;&gt;Sauvegarder vos données sur HubiC d&#039;OVH&lt;/a&gt;.&lt;/p&gt;</description>
		<pubDate>Sat, 24 Mar 2012 07:08:00 +0100</pubDate>
		<dc:creator>flipflip</dc:creator>
	</item>
	<item>
		<title>Taille des répertoires en ligne de commande</title> 
		<link>http://www.blogoflip.fr/article130/taille-des-repertoires-en-ligne-de-commande</link>
		<guid>http://www.blogoflip.fr/article130/taille-des-repertoires-en-ligne-de-commande</guid>
		<description>&lt;p&gt;Juste une petite astuce en passant. J&#039;ai eu besoin de connaitre la taille des répertoires contenue dans une arborescence le tout en ligne de commandes :
&lt;pre&gt;cd /var
ls -d */ | xargs du -s | sort -n&lt;/pre&gt;&lt;/p&gt;</description>
		<pubDate>Tue, 06 Mar 2012 15:46:00 +0100</pubDate>
		<dc:creator>flipflip</dc:creator>
	</item>
	<item>
		<title>Gestion des sauvegardes avec rsync</title> 
		<link>http://www.blogoflip.fr/article127/gestion-des-sauvegardes-avec-rsync</link>
		<guid>http://www.blogoflip.fr/article127/gestion-des-sauvegardes-avec-rsync</guid>
		<description>&lt;p&gt;Afin d&#039;optimiser le temps et le volumes de mes sauvegardes j&#039;ai réfléchis à différentes solutions. Jusqu&#039;à présent j&#039;utilisais rsync via un petit script maison et puis j&#039;ai fais des recherches sur rdiff-backup pensant que celui-ci transférait uniquement les blocs de fichier modifié alors que rsync transférait tout la totalité du fichier modifié. Grosse erreur, tout deux transfert uniquement les blocs de fichiers modifier. Donc comment optimiser un petit peu tout ça ?&lt;/p&gt;&lt;p&gt;Grâce au journaux de linuxfr j&#039;ai découvert l&#039;option --link-dest de rsync. Mais avant d&#039;aller plus loin un peu de structure.&lt;/p&gt;

&lt;p&gt;Mise à jour :&lt;br /&gt;
- 15/04/2012 : possibité d&#039;avoir plusieurs sources de sauvegardes.&lt;br /&gt;
- 02/04/2012 : mise à jour de la gestion des dates.&lt;br /&gt;
- 27/03/2012 : gestion de la sauvegarde sur &lt;a href=&quot;http://www.blogoflip.fr/?article131/sauvegarde-sur-le-ftp-d-ovh&quot;&gt;ftp&lt;/a&gt; d&#039;ovh ou &lt;a href=&quot;http://www.blogoflip.fr/?article132/ovh-hubic-en-ligne-de-commande&quot;&gt;HubiC&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;L&#039;idée de départ est d&#039;avoir une gestion de version de backup sur x jours, c&#039;est ce qu&#039;on appel la rétention. Le problème dans ce cas va être le volume de données à gérer. Pour contourner ce problème Linux dispose des &quot;liens en dur&quot; (hard link). Pas forcement créé pour au début mais vachement pratique quand même.&lt;br /&gt;
Imaginons :

&lt;ul&gt;
&lt;li&gt;le répertoire /home/flipflip comme répertoire à sauvegarder&lt;/li&gt;
&lt;li&gt;le répertoire /mnt/backup comme répertoire de stockage des sauvegardes&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;
&lt;pre&gt;#!/bin/bash
# +--------------------------------
# | Définition des répertoires
# +--------------------------------
BASETARGET=&quot;/media/backup&quot;
TARGET=&quot;${BASETARGET}/sauvegarde&quot;

# Tableau des répertoires à sauvegarder
SOURCE[0]=&quot;/home/USERS/Images&quot;
SOURCE[1]=&quot;/home/USERS/Modèles&quot;

# +--------------------------------
# | mode de montage de target
# | valeur possible : ftp, dav
# +--------------------------------
MODE=&quot;dav&quot;

# +--------------------------------
# | url du partage webdav 
# | voir : http://www.blogoflip.fr/?article132/ovh-hubic-en-ligne-de-commande
# +--------------------------------
URLDAV=&quot;https://cloudnas1.ovh.com/6z9affd86ee8486468b17be15938b82a/&quot;

# +--------------------------------
# | Information méthode ftp
# | voir : http://www.blogoflip.fr/?article131/sauvegarde-sur-le-ftp-d-ovh
# +--------------------------------
USERFTP=
PASSFTP=
HOTEFTP=

RETENTION=5

# Les répertoires de sauvegardes ont pour structure YYYY-MM-DD
OLDDATE=`date +%Y-%m-%d --date &#039;1 days ago&#039;`
DAYDATE=`date +%Y-%m-%d`

remove_old() {
	# Gère la rétention des backups
	LS=`ls -d ${TARGET}/2* | sort | head --lines=-${RETENTION} | xargs rm -rf`
	if [ ${?} -ne 0 ]
	then
		echo &quot;Une erreur c&#039;est produite pendant la rotation des backup&quot;
		exit 1
	fi
}

go_backup() {	
	# La partie intéressante est --link-dest
	# Ce paramêtre créé automatiquement des liens hard si le fichier est identique entre OLD et JOUR
	for BACKUP in &quot;${SOURCE[@]}&quot;
	do
		rsync -ah --progress --delete-after --stats --no-owner --no-group --safe-links --link-dest=${TARGET}/${OLDDATE} ${BACKUP} ${TARGET}/${DAYDATE}/
	done
}

mount_dav() {
	if [ ! -d $HOME/.davfs/secrets ]
	then
		mount -t davfs $URLDAV $BASETARGET
		if [ $? -ne 0 ]
		then
			echo &quot;Erreur pendant le montage&quot;
			exit 1
		fi
	else
		echo &quot;Le fichier $HOME/.davfs/secret n&#039;existe pas&quot;
		echo &quot;Créer le fichier secrets contenant :&quot;
		echo &quot;http://URLWEBDAV login password&quot;
		exit 1
	fi
}

mount_ftp () {
	curlftpfs#$USERFTP:$PASSFTP@$HOTEFTP $BASETARGET
	if [ $? -ne 0 ]
	then
		echo &quot;Une erreur c&#039;est produite pendant le montage&quot;
		exit 1
	fi
	
}

umount_backup () {
        umount $BASETARGET
        if [ $? -ne 0 ]
        then
                echo &quot;Erreur pendant le demontage de $BASETARGET&quot;
                exit 1
        fi
}

case $MODE in
	dav) mount_dav ;;
	ftp) mount_ftp ;;
	*) echo &quot;Erreur de paramétrage du mode&quot; ;;
esac

if [ -d ${TARGET}/${DAYDATE} ]
then
	echo &quot;Le répertoire ${DAYDATE} existe déjà&quot;
	go_backup
else
	go_backup
	remove_old
fi

umount_backup
exit 0&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;TARGET&lt;/strong&gt; est le répertoire de stockage des sauvegardes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SOURCE&lt;/strong&gt; est le répertoire à sauvegarde&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JOUR&lt;/strong&gt;, &lt;strong&gt;MOIS&lt;/strong&gt;, &lt;strong&gt;ANNEE&lt;/strong&gt; vont nous permettre de créer une structure de répertoires sous la forme YYYY-MM-DD. &lt;strong&gt;RETENTION&lt;/strong&gt; correspond au nombre de jours de sauvegarde à conserver en plus du jour de lancement de la sauvegarde.&lt;/p&gt;

&lt;p&gt;Le script est découpé en deux fonctions :&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;remove_old qui supprime les anciennes sauvegardes&lt;/li&gt;
&lt;li&gt;go_backup qui lance la sauvegarde&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;

&lt;p&gt;Ensuite une condition toute bête qui test si le répertoire du jour de la sauvegarde existe dans ce cas il lance uniquement la sauvegarde sinon il lance la rotation des sauvegardes et la sauvegarde. Cette condition empêche la suppression des anciennes sauvegardes dans le cas ou vous lancez plusieurs fois par jour la sauvegarde.&lt;/p&gt;

&lt;h2&gt;Mise en situation&lt;/h2&gt;
&lt;p&gt;Je suis le 20 du mois, je lance pour la première fois la sauvegarde, mon répertoire &lt;strong&gt;SOURCE&lt;/strong&gt; contient :&lt;/p&gt;

&lt;p&gt;&lt;pre&gt;drwx------ 2 flipflip flipflip 4096  2 nov.   2010 dir1
-rwx------ 1 flipflip flipflip    0 20 janv. 12:10 fic
-rwx------ 1 flipflip flipflip    0  2 nov.   2010 fic1
-rwx------ 1 flipflip flipflip    0  2 nov.   2010 fic2&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;Et pour le moment &lt;strong&gt;TARGET&lt;/strong&gt; est vide, je lance la sauvegarde :&lt;/p&gt;
&lt;p&gt;&lt;pre&gt;ls: impossible d&#039;accéder à /mnt/backup/2*: Aucun fichier ou dossier de ce type
--link-dest arg does not exist: /mnt/backup/2012-01-19
cd+++++++++ ./
&gt;f+++++++++ fic
&gt;f+++++++++ fic1
&gt;f+++++++++ fic2
cd+++++++++ dir1/
&gt;f+++++++++ dir1/ficdir1
&gt;f+++++++++ dir1/ficdir2

Number of files: 7
Number of files transferred: 5
Total file size: 0 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 132
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 340
Total bytes received: 113

sent 340 bytes  received 113 bytes  906.00 bytes/sec
total size is 0  speedup is 0.00&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;Les deux premiers messages sont normaux puisque c&#039;est la premiere fois qu&#039;on le lance, le répertoire &lt;strong&gt;TARGET&lt;/strong&gt; contient maintenant :&lt;/p&gt;
&lt;p&gt;&lt;pre&gt;drwx------ 3 flipflip flipflip 4096 20 janv. 12:10 2012-01-20&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Et un ls -l dans 2012-01-20 donne :&lt;/p&gt;
&lt;p&gt;&lt;pre&gt;drwx------ 2 flipflip flipflip 4096  2 nov.   2010 dir1
-rwx------ 1 flipflip flipflip    0 20 janv. 12:10 fic
-rwx------ 1 flipflip flipflip    0  2 nov.   2010 fic1
-rwx------ 1 flipflip flipflip    0  2 nov.   2010 fic2&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;Jusque la tout va bien. Le lendemain arrive donc nous somme le 21, je travaille sur le fichier fic, il est l&#039;heure de partir je lance la sauvegarde :&lt;/p&gt;
&lt;p&gt;&lt;pre&gt;cd..t...... ./
&gt;f.st...... fic

Number of files: 7
Number of files transferred: 1
Total file size: 7 bytes
Total transferred file size: 7 bytes
Literal data: 7 bytes
Matched data: 0 bytes
File list size: 132
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 193
Total bytes received: 35

sent 193 bytes  received 35 bytes  456.00 bytes/sec
total size is 7  speedup is 0.03&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;Seul le fichier fic à été transféré, maintenant le répertoire TARGET contient :&lt;/p&gt;
&lt;p&gt;&lt;pre&gt;drwx------ 3 flipflip flipflip 4096 20 janv. 12:10 2012-01-20
drwx------ 3 flipflip flipflip 4096 21 janv. 12:15 2012-01-21&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;&lt;pre&gt;ls -l 2012-01-20
drwx------ 2 flipflip flipflip 4096  2 nov.   2010 dir1
-rwx------ 1 flipflip flipflip    0 20 janv. 12:10 fic
-rwx------ 2 flipflip flipflip    0  2 nov.   2010 fic1
-rwx------ 2 flipflip flipflip    0  2 nov.   2010 fic2

ls -l 2012-01-21
drwx------ 2 flipflip flipflip 4096  2 nov.   2010 dir1
-rwx------ 1 flipflip flipflip    7 21 janv. 12:15 fic
-rwx------ 2 flipflip flipflip    0  2 nov.   2010 fic1
-rwx------ 2 flipflip flipflip    0  2 nov.   2010 fic2&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;dir1, fic1 et fic2 sont des hard link qui occupe bien moins de place que le fichier d&#039;origine. Il y a uniquement fic qui est mis à jour. La semaine continue et nous sommes le 26 normalement le répertoire TARGET devrait ressembler à ça :&lt;/p&gt;
&lt;p&gt;&lt;pre&gt;drwx------ 3 flipflip flipflip 4096 27 janv. 12:10 2012-01-20
drwx------ 3 flipflip flipflip 4096 27 janv. 12:15 2012-01-21
drwx------ 3 flipflip flipflip 4096 27 janv. 12:15 2012-01-22
drwx------ 3 flipflip flipflip 4096 27 janv. 12:15 2012-01-23
drwx------ 3 flipflip flipflip 4096 27 janv. 12:15 2012-01-24
drwx------ 3 flipflip flipflip 4096 27 janv. 12:15 2012-01-25&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;J&#039;ai programmé une rétention de 5 jours, je lance la sauvegarde et magie :&lt;/p&gt;
&lt;p&gt;&lt;pre&gt;drwx------ 3 flipflip flipflip 4096 27 janv. 12:15 2012-01-21
drwx------ 3 flipflip flipflip 4096 27 janv. 12:15 2012-01-22
drwx------ 3 flipflip flipflip 4096 27 janv. 12:15 2012-01-23
drwx------ 3 flipflip flipflip 4096 27 janv. 12:15 2012-01-24
drwx------ 3 flipflip flipflip 4096 27 janv. 12:15 2012-01-25
drwx------ 3 flipflip flipflip 4096 27 janv. 12:15 2012-01-26&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;La journée du 20 a disparue.&lt;/p&gt;

&lt;p&gt;Je vous laisse bricoler les options de rsync&lt;/p&gt;</description>
		<pubDate>Fri, 27 Jan 2012 12:26:00 +0100</pubDate>
		<dc:creator>flipflip</dc:creator>
	</item>
	<item>
		<title>Parser un fichier ini en bash</title> 
		<link>http://www.blogoflip.fr/article126/parser-un-fichier-ini-en-bash</link>
		<guid>http://www.blogoflip.fr/article126/parser-un-fichier-ini-en-bash</guid>
		<description>&lt;p&gt;Pour automatiser un traitement j&#039;ai été obligé de trouver un moyen pour parser x fichiers ini contenue dans un répertoire. Avant je devais les déplacer et ensuite récupérer fichier après fichier les valeurs de chaque variable en les attribuant à des variables bash&lt;/p&gt;&lt;p&gt;Voila le résultat :
&lt;pre&gt;#!/bin/bash
SPOOLDIR=&quot;/www/thecom/www/spool&quot;
LOADDIR=&quot;/www/thecom/www/load&quot;

echo &quot;Installation d&#039;agora projet&quot;

function checkValues() {
        VARVALUE=`grep -w $1 $LOADDIR/$2 | cut -d&quot;=&quot; -f2`
        echo &quot;$VARVALUE&quot;
}

for FILE in $SPOOLDIR/*.ini
do
        FILENAME=`basename $FILE`
        mv $FILE $LOADDIR/$FILENAME

        # Lecture du fichier ini
        NOM=`checkValues &quot;nom&quot; $FILENAME`
        PRENOM=`checkValues &quot;prenom&quot; $FILENAME`
        ADRESSE=`checkValues &quot;adresse&quot; $FILENAME`

        echo $NOM
        echo $PRENOM
        echo $ADRESSE
done
exit 0&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;Par exemple pour 
&lt;pre&gt;NOM=`checkValues &quot;nom&quot; $FILENAME`&lt;/pre&gt;
Je veux affecter à la variable NOM la valeur du paramètre ini nom contenue dans $FILENAME.&lt;/p&gt;
&lt;p&gt;Tout bête mais bien plus pratique avec l&#039;utilisation d&#039;une fonction, il y a peut être plus simple mais en 5mn c&#039;est tout ce que j&#039;ai trouvé.&lt;/p&gt;</description>
		<pubDate>Wed, 21 Dec 2011 14:15:00 +0100</pubDate>
		<dc:creator>flipflip</dc:creator>
	</item>
</channel>
</rss>
