Sauvegarder automatiquement son HOME sur un disque USB crypté

Comme tout le monde, les sauvegardes j'y pense que lorsque j'ai un soucis. J'ai donc voulu me concocter un petite bidouille pour sauvegarder automatiquement mes documents ($HOME) sur un disque externe. Pour que mes données restent un brin protégées, j'ai choisi d'utiliser une partition cryptée (mots de passe, clés ssh et PGP, ...). Lorsque je branche mon disque, une fenêtre apparaît pour me demander la clé de décryptage, et je confirme si je veux ou non synchroniser les données.

1) Créer la partition

Perso, j'utilise gparted. Noter le device (ex: /dev/sdb2).

Sinon, pour voir la liste des disques et des partitions:

 $ df -lh
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             6.3G  4.2G  1.9G  70% /
/dev/sda3              73G   39G   30G  57% /data
/dev/sdb1              68G   58G   11G  85% /media/EXT
/dev/sdb2              24G   6.1G   18G  25% /media/disk
/dev/mapper/home       25G   14G  9.6G  59% /home

2) Créer le système de fichier crypté

Installer le paquet cryptsetup

sudo apt-get install cryptsetup

Lancer le formattage :

sudo luksformat -t ext3 /dev/sdb2

La passphrase doit être un minimum compliquée, mais si on l'oublie les données sont irrécupérables.

Voilà c'est tout ! Vous avez une partition cryptée, quand le disque est branché, le système vous demande la passphrase pour monter la partition.

3) Lancer un script automatiquement lorsque le disque est branché :

Il suffit de créer un fichier autorun.sh à la racine de la partition. Mon script principal est sur le PC et pas sur le disque, donc celui-ci lui fait simplement appel quand la partition est montée :

#! /bin/sh
diskpath=`pwd`
cd ~/.bin
./backup-disk-usb.sh $diskpath

4) Lancer un script de backup rsync avec une barre de progression

En utilisant zenity, on demande la confirmation et on affiche la progression avec des jolies boites de dialogue.

Créer le script ~/.bin/backup-disk-usb.sh, qui s'appuie sur rsync pour la sauvegarde incrémentale :

#! /bin/bash
 
# Get destination from command line
diskpath=$1
 
# Ask confirmation
zenity --question --text="Backup home folder to '$diskpath', confirm ?"
rc=$?
if [ "${rc}" == "1" ]; then
    echo "Backup canceled by user."
    exit 1
fi
 
# Run synchronization
rsync --verbose --progress --archive $HOME $diskpath  |  
     awk -f rsync.awk | 
     zenity --progress --width=400 --auto-close --auto-kill --title "Backing up" --text="Scanning..." --percentage=0
 
# Show popup
zenity --info --title="Backup complete" --text="Backup is now complete."
exit 0

Créer le fichier ~/.bin/rsync.awk pour relier la barre de progression à rsync (Merci à crowdway pour l'astuce).

{
   if (index($0, "to-check=") > 0)
   {
	split($0, pieces, "to-check=");
	term = substr(pieces[2], 0, length(pieces[2])-1);
	split(term, division, "/");
	print (1-(division[1]/division[2]))*100"%"
   }
   else
   {
	print "#"$0;
   }
   fflush();
}

Si aucun fichier n'est modifié entre deux sauvegardes, cela ne prend que quelques secondes...

Friendface, c'est comme une boite de Pétri remplie de germes d'amitiés !

friendface.jpg

L'épisode 5 de la saison 3 d'IT Crowd rattrape le calme des quelques épisodes précédents avec une parodie saignante de Facebook. On retrouve le bon comique de situation à l'anglaise quand Jen, Roy et Moss subissent les effets secondaires des réseaux sociaux. Je suis fan!

Les laboratoires Bell

J'étais tranquillement en train de geeker Jules-Édouard, et voici que je tombe sur la page de Bell Labs sur Wikipedia. J'ai tout bonnement hallu-ciné !

Voici la liste des inventions, spécifications ou accomplissements des employés de cette petite SARL américaine :

  • 1925: le facsimilie (Fax !)
  • 1925: l'enregistrement du son haute définition
  • 1925: les spécifications de l'ingénierie système
  • 1927: transmission de la télévision à distance, synchronization du son des films
  • 1932: la radio astronomie
  • 1933: la son en stéréo
  • 1937: le synthétiseur vocal
  • 1939: l'ordinateur digital binaire
  • 1940: le control d'un ordinateur à distance
  • 1946: le téléphone mobile
  • 1947: le transistor !, les télécommunications cellulaires !
  • 1948: la théorie de l'information (Shannon)
  • 1949: la cryptographie moderne (Shannon)
  • 1951: l'appel téléphonique longue distance sans opérateur
  • 1954: la cellule photovoltaique
  • 1956: le cable téléphone transatlantique
  • 1957: la musique éléctronique, les algorithmes de Prim et Kruskal
  • 1958: le laser !
  • 1962: la synthèse vocale d'un texte, le bipeur (le Tatoo !, "Pager" en Anglais), le satellite de télécommunications
  • 1963: le téléphone à touches !
  • 1964: la découverte du fond diffus cosmologique
  • 1965: l'évidence du big-bang
  • 1969: le système d'exploitation UNIX
  • 1972: le language C
  • 1976: le language S
  • 1977: les télécommunications sur fibre optique
  • 1978: l'implémentation des télécommunications cellulaires
  • 1979: le processeur de signal numérique (DSP)
  • 1980: le téléphone cellulaire
  • 1983: le language C++
  • 1984: la transmission Gigabit, la puce de 1 Megaoctet, les algorithmes de programmation linéaire
  • 1988: la fibre optique transatlantique
  • 1990: le Wireless LAN
  • 1997: la télévision haute définition
  • 1999: le routeur optique
  • 2000: la découverte de la matière noire, le papier électronique (écran mou), l'ingénierie neuromorphique
  • 2003: le 30 000 ème brevet
  • 2004: la nano batterie
  • 2005: la transmission à 100 Gigabit par seconde

Les 15 dernières années j'ai filtré parce qu'on y comprend pas grand chose, mais quand on regarde le passé on se doute qu'on s'en servira un jour !

...je vous laisse faire vos "clic droit -> Chercher sur Google", la flemme de mettre les liens...