backuppcExportOnUsbDisk/README.md

197 lines
5.6 KiB
Markdown
Raw Permalink Normal View History

2017-02-28 15:20:12 +01:00
Export des sauvegardes BackupPC sur disques externes USB chiffrés
=================================================================
Installation
---------------
* Installer les dépendances :
2017-03-06 18:16:13 +01:00
```bash
apt-get install inoticoming cryptsetup beep libfuse-perl util-linux
2017-03-06 18:16:13 +01:00
```
* mettre les fichiers suivant dans */usr/local/sbin* :
2017-02-28 15:20:12 +01:00
* backup-usb
* backuppcfs
* udev-bkp-usb
* run-bkp-usb
2017-03-06 18:16:13 +01:00
* créer les dossiers */mnt/backuppcfs* et */mnt/usb* :
2017-02-28 15:22:33 +01:00
2017-03-06 18:16:13 +01:00
```bash
mkdir /mnt/backuppcfs /mnt/usb
2017-02-28 15:20:12 +01:00
```
2017-03-06 18:16:13 +01:00
* créer le fichier */etc/udev/rules.d/99-bkp-usb.rules* :
```bash
2017-02-28 15:20:12 +01:00
# A l'insertion du disque, lancement du script de backup
2017-03-06 18:16:13 +01:00
# Rechargement des regles udev manuellement si necessaire : `udevadm control --reload-rules`
# Exemple :
# Disk 1
#  ACTION=="add", ENV{DEVTYPE}=="disk", ENV{ID_FS_UUID}=="41fc79d3-25fd-4424-9fc8-92479deead27", RUN+="/usr/local/sbin/udev-bkp-usb"
2017-02-28 15:20:12 +01:00
```
2017-03-06 18:16:13 +01:00
* lancer la commande :
2017-02-28 15:22:33 +01:00
2017-03-06 18:16:13 +01:00
```bash
udevadm control --reload-rules
2017-02-28 15:20:12 +01:00
```
2017-03-06 18:16:13 +01:00
* ajouter les lignes suivantes dans le fichier */etc/rc.local* :
```bash
2017-02-28 15:20:12 +01:00
# Run backup on USB device detection (trigger by udev rule)
inoticoming --logfile /var/log/bkp-usb.log /var/run/ --stderr-to-log --stdout-to-log --regex '^bkp-usb-detected$' /usr/local/sbin/run-bkp-usb \;
2017-02-28 15:20:12 +01:00
```
2017-02-28 15:22:33 +01:00
2017-03-06 18:16:13 +01:00
* lancer manuellement la commande *inoticoming* du fichier précédent (ou rebooter)
2017-02-28 15:20:12 +01:00
* mettre en place la rotation du fichier de log en créant le fichier */etc/logrotate.d/backup-usb* :
```
/var/log/bkp-usb.log {
rotate 7
weekly
compress
missingok
notifempty
}
```
2017-02-28 15:20:12 +01:00
Création du mot de passe de et la clé LUKS
------------------------------------------
2017-02-28 15:22:33 +01:00
2017-03-06 18:16:13 +01:00
```bash
2017-02-28 15:20:12 +01:00
pwgen -1 -y 40 > /root/.luks.pwd
dd if=/dev/urandom of=/root/.luks.key bs=1024 count=4
2017-03-06 17:55:57 +01:00
chmod 0600 /root/.luks.pwd /root/.luks.pwd
2017-02-28 15:20:12 +01:00
```
Creation d'un disque USB
------------------------
- brancher le disque sur le serveur puis se connecter en tant que root au serveur
2017-03-06 18:16:13 +01:00
- détecter le nom qu'a pris le disque (en regardant le résultat de la commande *dmesg* par exemple), par exemple **/dev/sdg**
2017-02-28 15:20:12 +01:00
- formater le disque :
2017-02-28 15:22:33 +01:00
2017-03-06 18:16:13 +01:00
```bash
2017-02-28 15:20:12 +01:00
cryptsetup -q --use-urandom luksFormat /dev/sdg /root/.luks.pwd
cryptsetup luksAddKey /dev/sdg /root/.luks.key --key-file /root/.luks.pwd
```
2017-02-28 15:22:33 +01:00
2017-02-28 15:20:12 +01:00
- "Ouvrir" le disque chiffré :
2017-03-06 18:16:13 +01:00
```bash
2017-02-28 15:20:12 +01:00
cryptsetup luksOpen /dev/sdg bkp-usb --key-file /root/.luks.key
```
- Formater le disque chiffré en ext4 :
2017-02-28 15:22:33 +01:00
2017-03-06 18:16:13 +01:00
```bash
2017-02-28 15:20:12 +01:00
mkfs.ext4 /dev/mapper/bkp-usb
tune2fs -i0 -c0 -m0 /dev/mapper/bkp-usb
```
2017-02-28 15:22:33 +01:00
2017-02-28 15:20:12 +01:00
- Fermer le disque chiffré :
2017-02-28 15:22:33 +01:00
2017-03-06 18:16:13 +01:00
```bash
2017-02-28 15:20:12 +01:00
cryptsetup close bkp-usb
```
2017-02-28 15:22:33 +01:00
2017-02-28 15:20:12 +01:00
- Récupérer l'identifiant UUID du disque :
2017-02-28 15:22:33 +01:00
2017-03-06 18:16:13 +01:00
```bash
2017-02-28 15:20:12 +01:00
udevadm info -q all /dev/sdg|grep 'ID_FS_UUID='
```
2017-02-28 15:22:33 +01:00
2017-02-28 15:20:12 +01:00
Exemple :
2017-02-28 15:22:33 +01:00
2017-03-06 18:16:13 +01:00
```bash
2017-02-28 15:20:12 +01:00
root@bkphost:~# udevadm info -q all /dev/sdg|grep 'ID_FS_UUID='
E: ID_FS_UUID=41fc79d3-25fd-4424-9fc8-92479deead27
```
- Ajouter l'exécution automatique de l'export des backups pour ce disque
dans le fichier le règle udev */etc/udev/rules.d/99-bkp-usb.rules* :
2017-02-28 15:22:33 +01:00
2017-03-06 18:16:13 +01:00
```bash
2017-02-28 15:20:12 +01:00
# Disk X
ACTION=="add", ENV{DEVTYPE}=="disk",
ENV{ID_FS_UUID}=="41fc79d3-25fd-4424-9fc8-92479deead27",
RUN+="/usr/local/sbin/udev-bkp-usb"
```
2017-02-28 15:22:33 +01:00
2017-03-06 18:16:13 +01:00
- Recharger les règles UDEV :
2017-02-28 15:22:33 +01:00
2017-03-06 18:16:13 +01:00
```bash
2017-02-28 15:20:12 +01:00
udevadm control --reload-rules
```
2017-02-28 15:22:33 +01:00
2017-02-28 15:20:12 +01:00
- Débrancher puis re-brancher le disque une première fois pour vérifier qu'il est bien détecter et que le premier export (long) soit lancé.
2017-03-06 18:16:13 +01:00
**Note :** A des fins de tests, il est possible de simuler l'exécution du script */usr/local/sbin/udev-bkp-usb* par UDEV de la manière suivante :
```bash
ACTION=add DEVTYPE=disk DEVNAME=/dev/sdg /usr/local/sbin/udev-bkp-usb
```
Lancer manuellement l'export des sauvegardes sur un disque USB déjà branché
---------------------------------------------------------------------------
Vous pouvez utiliser le script *run-bkp-usb* pour lancer manuellement l'export des sauvegardes sur un disque USB déjà branché :
```
Usage : /usr/local/sbin/run-bkp-usb [device]
device To manually run export, provide the USB Drive device path
```
Exemple :
```bash
run-bkp-usb /dev/sdc
```
2017-04-21 11:02:20 +02:00
Voir l'état actuel d'un export
------------------------------
Vous pouvez utiliser le paramètre *-s* du script *backup-usb* pour voir l'état actuel d'un export :
```bash
# backup-usb -s
2017-04-21 - 10h52m54s -- [INFO] Fichier de lock present
2017-04-21 - 10h52m54s -- [INFO] Un export de sauvegarde est en cours (commande rsync détectée)
2017-04-21 - 10h52m54s -- [INFO] Disque LUKS ouvert
2017-04-21 - 10h52m54s -- [INFO] Disque LUKS monté
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/bkp-usb 3.6T 1.2T 2.5T 31% /mnt/usb
2017-04-21 - 10h52m54s -- [INFO] BackupPC-FS monté
```
Ouvrir et monté un disque USB chiffré manuellement
--------------------------------------------------
Si vous avez besoin de voir ce qu'un de vos disques USB chiffrés contient, vous pouvez utiliser le paramètre *-o* du script *backup-usb* :
```bash
backup-usb -o -u /dev/sdc
```
2017-05-09 11:30:46 +02:00
Le disque chiffré USB sera ouvert et monté dans son point de montage habituel (*/mnt/usb* par défaut). Le fichier de *lock* sera positionné et vous pourrez démonter et fermer le disque USB chiffré une fois fini à l'aide du paramètre *-c* du script *backup-usb* :
2017-04-21 11:02:20 +02:00
```bash
backup-usb -c
```
Lancer une vérification du système de fichiers d'un disque USB chiffré
----------------------------------------------------------------------
En cas de doute ou de problème avec le système de fichier d'un disque USB, vous pouvez utiliser le paramètre *-f* du script *backup-usb* :
```bash
backup-usb -f -u /dev/sdc
```
Le disque USB chiffré sera ouvert et un *fsck* sera lancé sur le système de fichiers qu'il contient. Une fois terminé et si le *fsck* s'est bien terminé, le disque USB chiffré sera fermé.