TODO : réécrire cet HowTo _APRES_ la mini conf du 11 oct 2012 (on verra en combien de temps j'aurais reecris cela...) ====== Objectifs & Etat des lieux ====== * Les clefs USB ca crame facilement (notamment là ou officie madame mon épouse, il semblerait qu'une machine, soit une tueuse de clef USB, et moi même j'en ai tué d'autres) * On oublie fréquemment de vider correctement la carte SD de l'APN familiale, et donc la veille des mariage.... * Mon [[http://www.amazon.com/Seagate-FreeAgent-DockStar-Network-STDSA10G-RK/dp/B002MRRU6G|Seagate Dockstar]] a quelque peu rendu l'âme (NAND cramée je crois bien) * J'ai un petit [[http://www.raspberrypi.org/|RaspBerry Pi]] qui a besoin d'une fonction utile * J'ai un joli serveur de sauvegarde (merci BackupPC) * Les machines sont à la cave, le matériel dans la maison _doit_ être silencieux * Sauvegarder c'est rigolo, être fainenant c'est encore mieux ====== Méthodes possibles ====== - Rallonge USB : * simple pas de travail trop intellectuel, enfin si passer le câble, et la ca deviens vite moins souple * certaines rallonge ne tiennent pas la longeur - Modifier mon [[http://www.amazon.com/Seagate-FreeAgent-DockStar-Network-STDSA10G-RK/dp/B002MRRU6G|Seagate Dockstar]] pour qu'il exporte un rsync de la clef - Utiliser simplement le paquet UsbIP (permet de faire passer de l'USB over IP) <= over kill - Utiliser une vrai machine (le RaspBerry PI, et étudier la chose...) ===== Quid de la technicité des choix ? ===== ==== NSLU2 ==== - autofs pour montage de la clef dans un rep avec le numéro de série comme point de montage - synchro sur un disque local - des que le serveur de synchro passe, il y a les données - Être bien attentif a gérer l'arrachage a chaud de la clef * Montage en RO * Faire clignoter une Led ? ==== UsbIp ==== - Dés insertion d'un perif USB : auto-export de celui ci - Le "ping" de Backuppc est modifier pour chercher la présence du périphérique a backuper sur le Nslu2 * Si le perif a été démonté volontairement mais pas débranché, en tenir compte - Être bien attentif a gérer l'arrachage a chaud de la clef * Montage en RO * Faire clignoter une Led ? * [[http://www.nslu2-linux.org/wiki/HowTo/UseUsbIpOnTheNSLU2|Comment faire sur NSLU2]] mais j'aime pas : cross-compil -> Et si je faisait ca plutôt sur mon "cadavre" d'eepc (un eepc 701 acheté pas cher car clavier HS) ===== Pourquoi choisir UsbIP ? ===== - Plus le temps va passer plus il sera difficile de trouver les binaires pour piloter mes modules USB que je vais brancher dépasseront mon NSLU2 (déjà que...) - Une Rallonge USB c'est incompatible avec la virtualisation, enfin généralement (y un hack pour Xen ;) ) - Je veux faire marcher mon pingouin magique, comme il est USB, ca serait sympa d'avoir un "standard" de l'USB a la maison ! * Pour le TuxDroid s'appuyer sur la superbe Doc http://tux.serviceinformatique06.com/ - J'aime les trucs complétement portables (oui y a le client pour windows :)))))) ) - J'aime les trucs qui sortent de l'ordinaire - J'aime l'ouverture que ca propose (oui, je ne suis plus limité a du FileSysteme, cf le TuxDroid, mais aussi la pleine synchro du GSM, en BT !!!) ====== Ce qui fonctionne ====== A ete mis en place pour le moment : * Un Eepc d'occasion le relais, sans clavier (donc pas cher, et potentiellement en wifi, donc mettable partout :) ) * Un serveur BackupPC (deja existant) avec des hostes au parametrage specifique ===== Manipulation faites sur le relais ===== ==== Creation d'un script php ==== pour permettre au serveur **BackupPC** de: - //pinger// la clef USB - Lancer un dump avant le backuppc FIXME: a terme ce dump permettras aussi, idealement bkp table de partition mbr ==== Configuration de sudo ==== Permettre a www-data de démonter la clef en fin de backup # /etc/sudoers # # This file MUST be edited with the 'visudo' command as root. # # See the man page for details on how to write a sudoers file. # Defaults env_reset # Host alias specification # User alias specification # Cmnd alias specification Cmnd_Alias UMOUC = /usr/sbin/umount.hal # User privilege specification root ALL=(ALL) ALL Runas_Alias UMOUU = root # Allow members of group sudo to execute any command after they have # provided their password # (Note that later entries override this, so you might need to move # it further down) %sudo ALL=(ALL) ALL # #includedir /etc/sudoers.d # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL www-data ALL =(UMOUU) NOPASSWD: UMOUC ==== Configuration de l'automount ==== - apt-get install halevt === Configurations d'halevt === dans le fichier /etc/halevt/halevt.xml, modifier le bon (hihihi) paragraphe A ete rajouté //;/usr/local/sbin/call_bkppc true $hal.udi$ $hal.volume.mount_point$// cela lancera le script FIXME: dans le meme paragraphe dont //Action value="false"// nous pourrons l'employer pour faire changer la led de l'arduino Execution du script qui demande le backup (**/usr/local/sbin/call_bkppc**) #!/bin/bash # true /org/freedesktop/Hal/devices/volume_uuid_F03F_F5A8 /media/CLEFRBS00 mntype=$1 uidclef=$2 nomclef=`echo $3 | sed -s "s=^/media/==g" | tr "[:upper:]" "[:lower:]"` sleep 5 wget -qO /dev/null "http://backuppc:AUTH@adlp.org/backuppc/index.cgi?host=$nomclef&hostIP=$HOSTNAME&doit=1&action=Start_Incr_Backup" FIXME: ici il faudra changer la couleur de la Led ==== Configuration du rsync ==== - ajout d'un partage rsync [media] use chroot = false read only = true uid = root gid = root hosts allow = 10.0.10.51 comment = Bkp path = /media auth users = backuppc secrets file = /etc/rsyncd.secrets - Autres ameliorations * Integrer un systeme pour backuper le MBR et la table de partition du device * Gerer les conflits de labels ? * Indiquer la fin du backup (euh, au hasard, un arduino? :) ) ===== Serveur de Backup ===== * Je part du principe que le relais est déjà correctement backupé/able - Intégration d'un nouvel hôte, au nom du label de la clef (ouinnnn) - Configuration comme suis: (ici la clef, et le nom de la //machine// est ROMPAQ # # Local server backup of /etc as user backuppc # $Conf{TarShareName} = [ '/' ]; $Conf{TarClientCmd} = '$tarPath -c -v -f - -C $shareName+ --totals'; # remove extra shell escapes ($fileList+ etc.) that are # needed for remote backups but may break local ones $Conf{TarFullArgs} = '$fileList'; $Conf{TarIncrArgs} = '--newer=$incrDate $fileList'; $Conf{TarClientPath} = '/usr/bin/sudo /etc/backuppc/tar-create'; $Conf{RsyncShareName} = [ 'media' ]; $Conf{ClientNameAlias} = 'burma'; $Conf{BackupFilesExclude} = { 'temporaires' => [], 'tmp' => [ '*/tmp/*', '*/temp/*' ] }; $Conf{PingCmd} = '/usr/bin/wget -qO /dev/null http://$host/media.php?label=ROMPAQ'; $Conf{BackupFilesOnly} = { '*' => [ '/ROMPAQ' ] }; $Conf{DumpPreUserCmd} = '/usr/bin/wget -qO /dev/null http://$hostIP/media.php?label=ROMPAQ&go=dump'; $Conf{IncrPeriod} = '0.0035'; $Conf{BlackoutPeriods} = []; $Conf{DumpPostUserCmd} = '/usr/bin/wget -qO /dev/null http://$hostIP/media.php?label=ROMPAQ&go=umount'; ===== Manipulation a faire pour l'arduino ===== * Bien retrouver sur quel port du hub est branchée la clef, faire le lien entre lsusb et ce que l'on reçoit lors du branchement de la clef * Les états a allumer: - Orange : clef montée, en attente de backup - Rouge : Backup en cours - Vert : Backup fini - Éteint : Si tout ce passe bien, il n'y a rien dans ce port. FIXME * Mieux gérer le nom de la "machine", c'est peu lisible * Mieux gérer le nom fictif de la machine pour la passer aux scripts => minimiser les paramétrages * Pb de casse pour automatiser sur le nom de la partitions * Pas regarde pour le multipartitionning * Mieux gérer les auth - Créer un compte sur le backuppc juste pour la demande de backup des clefs - Gérer un login/mdp //uniquement// pour la demande de dump et cette de démontage - Sélectionner les clefs qui ont droit ou non a ce bakup