TODO : réécrire cet HowTo _APRES_ la mini conf du 11 oct 2012 (on verra en combien de temps j'aurais reecris cela…)
→ Et si je faisait ca plutôt sur mon “cadavre” d'eepc (un eepc 701 acheté pas cher car clavier HS)
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:
: 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
[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
# # 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';