TODO : réécrire cet HowTo _APRES_ la mini conf du 11 oct 2012 (on verra en combien de temps j'aurais reecris cela…)
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….
-
J'ai un petit
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
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
-
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…)
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
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
Être bien attentif a gérer l'arrachage a chaud de la clef
→ Et si je faisait ca plutôt sur mon “cadavre” d'eepc (un eepc 701 acheté pas cher car clavier HS)
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 !
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 !!!)
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
pour permettre au serveur BackupPC de:
pinger la clef USB
Lancer un dump avant le backuppc
: a terme ce dump permettras aussi, idealement bkp table de partition mbr
<?
# Rappelons nous les 3 etats de la mati^WClef
# ? Inséré : renvoyer un errcode http
# ! Prete : permet de lancer a terme un dump du mbr, etc ...
# ! Demounte : permet de demonter le device (coté secu c'est funcky, mais bon, j'aime le risque)
# Les params seront
# Key : Label de la clef
# Ordre : dump/umount (si vide, alors c'est une demande si inséré ou pas
$label=basename($_GET["label"]);
if(file_exists("/media/".$label)) {
if($_GET["go"]=="dump") {
}
elseif($_GET["go"]=="umount") {
echo "Demande arret";
system("/usr/bin/sudo /usr/sbin/umount.hal /media/$label");
}
else {
echo "OK";
}
}
else {
header("HTTP/1.0 404 Not Found");
###header("HTTP/1.0 404 Not Found",false,404);
}
?>
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
dans le fichier /etc/halevt/halevt.xml, modifier le bon (hihihi) paragraphe
<halevt:Device match="hal.block.device & hal.block.is_volume = true & hal.volume.mount_point">
<halevt:Property name="hal.volume.is_mounted">
<halevt:Action value="true" exec="halevt-mount -s;/usr/local/sbin/call_bkppc true $hal.udi$ $hal.volume.mount_point$"/>
</halevt:Property>
</halevt:Device>
A ete rajouté
;/usr/local/sbin/call_bkppc true $hal.udi$ $hal.volume.mount_point$ cela lancera le script
: 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"
: ici il faudra changer la couleur de la Led
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? :) )
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';
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

STATUT DOCUMENT
Titre du document : Objectifs & Etat des lieux
Date de Création : 21-10-2012 11:10
Date de dernière édition : 21-10-2012 10:10
Statut du document :
Validation par :
le : 01-01-1970 01:01