====== Installation d'Obnam ======
Obnam n'est plus maintenu : [[https://blog.liw.fi/posts/2017/08/13/retiring_obnam/|https://blog.liw.fi/posts/2017/08/13/retiring_obnam/]] !!!
=> Migration à faire vers [[Borg]]
===== Présentation =====
//TO DO//
===== Installation =====
Je vais suivre le [[https://obnam.org/tutorial/|tutoriel]] sur le site d'obnam.org. On commence par installer, dans mon cas sur Debian8 - Jessie :
# apt-get install obnam
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
fuse libfuse2 python-cliapp python-crypto python-ecdsa python-fuse python-larch
python-paramiko python-six python-tracing python-ttystatus
Suggested packages:
libjs-query libjs-underscore python-crypto-dbg python-crypto-doc libjs-jquery
The following NEW packages will be installed:
fuse libfuse2 obnam python-cliapp python-crypto python-ecdsa python-fuse python-larch
python-paramiko python-six python-tracing python-ttystatus
0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,686 kB of archives.
After this operation, 5,382 kB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://ftp.debian.org/debian/ jessie/main libfuse2 amd64 2.9.3-15+deb8u2 [135 kB]
Get:2 http://ftp.debian.org/debian/ jessie/main fuse amd64 2.9.3-15+deb8u2 [70.7 kB]
Get:3 http://ftp.debian.org/debian/ jessie/main python-tracing all 0.8-1 [33.8 kB]
Get:4 http://ftp.debian.org/debian/ jessie/main python-cliapp all 1.20140719-1 [80.8 kB]
Get:5 http://ftp.debian.org/debian/ jessie/main python-larch all 1.20131130-1 [78.4 kB]
Get:6 http://ftp.debian.org/debian/ jessie/main python-ttystatus all 0.23-1 [15.1 kB]
Get:7 http://ftp.debian.org/debian/ jessie/main python-crypto amd64 2.6.1-5+deb8u1 [256 kB]
Get:8 http://ftp.debian.org/debian/ jessie/main python-six all 1.8.0-1 [12.6 kB]
Get:9 http://ftp.debian.org/debian/ jessie/main python-ecdsa all 0.11-1 [35.1 kB]
Get:10 http://ftp.debian.org/debian/ jessie/main python-paramiko all 1.15.1-1 [107 kB]
Get:11 http://ftp.debian.org/debian/ jessie/main python-fuse amd64 2:0.2.1-10 [40.2 kB]
Get:12 http://ftp.debian.org/debian/ jessie/main obnam amd64 1.8-1 [822 kB]
Fetched 1,686 kB in 0s (5,055 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libfuse2:amd64.
(Reading database ... 15238 files and directories currently installed.)
Preparing to unpack .../libfuse2_2.9.3-15+deb8u2_amd64.deb ...
Unpacking libfuse2:amd64 (2.9.3-15+deb8u2) ...
Selecting previously unselected package fuse.
Preparing to unpack .../fuse_2.9.3-15+deb8u2_amd64.deb ...
Unpacking fuse (2.9.3-15+deb8u2) ...
Selecting previously unselected package python-tracing.
Preparing to unpack .../python-tracing_0.8-1_all.deb ...
Unpacking python-tracing (0.8-1) ...
Selecting previously unselected package python-cliapp.
Preparing to unpack .../python-cliapp_1.20140719-1_all.deb ...
Unpacking python-cliapp (1.20140719-1) ...
Selecting previously unselected package python-larch.
Preparing to unpack .../python-larch_1.20131130-1_all.deb ...
Unpacking python-larch (1.20131130-1) ...
Selecting previously unselected package python-ttystatus.
Preparing to unpack .../python-ttystatus_0.23-1_all.deb ...
Unpacking python-ttystatus (0.23-1) ...
Selecting previously unselected package python-crypto.
Preparing to unpack .../python-crypto_2.6.1-5+deb8u1_amd64.deb ...
Unpacking python-crypto (2.6.1-5+deb8u1) ...
Selecting previously unselected package python-six.
Preparing to unpack .../python-six_1.8.0-1_all.deb ...
Unpacking python-six (1.8.0-1) ...
Selecting previously unselected package python-ecdsa.
Preparing to unpack .../python-ecdsa_0.11-1_all.deb ...
Unpacking python-ecdsa (0.11-1) ...
Selecting previously unselected package python-paramiko.
Preparing to unpack .../python-paramiko_1.15.1-1_all.deb ...
Unpacking python-paramiko (1.15.1-1) ...
Selecting previously unselected package python-fuse.
Preparing to unpack .../python-fuse_2%3a0.2.1-10_amd64.deb ...
Unpacking python-fuse (2:0.2.1-10) ...
Selecting previously unselected package obnam.
Preparing to unpack .../archives/obnam_1.8-1_amd64.deb ...
Unpacking obnam (1.8-1) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up libfuse2:amd64 (2.9.3-15+deb8u2) ...
Setting up fuse (2.9.3-15+deb8u2) ...
update-initramfs: deferring update (trigger activated)
Setting up python-tracing (0.8-1) ...
Setting up python-cliapp (1.20140719-1) ...
Setting up python-larch (1.20131130-1) ...
Setting up python-ttystatus (0.23-1) ...
Setting up python-crypto (2.6.1-5+deb8u1) ...
Setting up python-six (1.8.0-1) ...
Setting up python-ecdsa (0.11-1) ...
Setting up python-paramiko (1.15.1-1) ...
Setting up python-fuse (2:0.2.1-10) ...
Setting up obnam (1.8-1) ...
Processing triggers for libc-bin (2.19-18+deb8u7) ...
Processing triggers for initramfs-tools (0.120+deb8u2) ...
===== Configuration =====
On peut faire un fichier de configuration, il est optionnel mais permet de ne pas retaper tous les arguments à chaque fois.
# vim ~/.obnam.conf
# cat ~/.obnam.conf
[config]
repository = /mnt/bkp/
log = /var/log/obnam.log
===== Tests de backups =====
==== Premier backup ====
On peut sauvegarder tout le //home// d'un utilisateur, par exemple :
# obnam backup --repository="/mnt/bkp/" /home/simon/
Backed up 14245 files (of 14245 found), uploaded 218.0 MiB in 1h11m11s at 52.4 KiB/s average speed
(Le dossier /mnt/bkp/ est un montage via sshfs, ça ralenti le backup!)
# cd /mnt/bkp/
/mnt/bkp# obnam generations
2 2017-02-19 18:19:12 .. 2017-02-19 19:29:43 (14245 files, 236801863 bytes)
On peut lancer un autre backup sans rien changer, juste pour voir. Ça va très vite!
# obnam backup --repository="/mnt/bkp/" /home/simon/
Backed up 0 files (of 14245 found), uploaded 0.0 B in 56s at 0.0 B/s average speed
Si on rajoute un/des fichier(s), et qu'on relance un backup :
# obnam backup --repository="/mnt/bkp/" /home/simon/
Backed up 2 files (of 14246 found), uploaded 0.0 B in 51s at 0.0 B/s average speed
On voit qu'on a plusieurs "générations" :
/mnt/bkp# obnam generations
2 2017-02-19 18:19:12 .. 2017-02-19 19:29:43 (14245 files, 236801863 bytes)
36 2017-02-19 20:16:22 .. 2017-02-19 20:16:39 (14245 files, 236801863 bytes)
70 2017-02-19 20:18:11 .. 2017-02-19 20:18:24 (14246 files, 236801863 bytes)
==== Backup du dossier /var/www/ ====
# obnam backup --repository="/mnt/bkp/" /var/www/
Backed up 48803 files (of 48803 found), uploaded 311.0 MiB in 4h21m3s at 20.3 KiB/s average speed
# ls -al /mnt/bkp/
total 32
drwxrwxr-x 1 549 549 4096 Feb 20 08:29 .
drwxr-xr-x 3 root root 4096 Feb 19 18:11 ..
drwx------ 1 549 549 4096 Feb 20 12:50 114327624274822128
drwx------ 1 549 549 4096 Feb 20 12:50 chunklist
drwx------ 1 549 549 4096 Feb 20 12:50 chunks
drwx------ 1 549 549 4096 Feb 20 12:50 chunksums
drwx------ 1 549 549 4096 Feb 20 08:29 clientlist
drwx------ 1 549 549 4096 Feb 20 08:29 metadata
# obnam backup --repository="/mnt/bkp/" /var/www/
Backed up 277 files (of 48987 found), uploaded 974.0 KiB in 4m31s at 3.6 KiB/s average speed
===== Alias et script =====
==== Alias ====
On peut créer un alias dans /root/.bashrc :
alias backup='obnam backup /home/mon-user/ /var/ /etc/ /autre/dossier/'
==== Script ====
//TO DO//
==== Automatisation ====
//TO DO//
===== Manipuler les backups =====
==== Monter les backups ====
root@Marvin:/home/simon# mkdir /tmp/backups
root@Marvin:/home/simon# obnam mount --to /tmp/backups
root@Marvin:/home/simon# ls -al /tmp/backups/
total 28
drwxr-xr-x 22 root root 4096 Jul 2 13:19 .
drwxrwxrwt 10 root root 4096 Jul 4 09:46 ..
drwxr-xr-x 22 root root 4096 Jun 29 19:13 23750
drwxr-xr-x 22 root root 4096 Jun 29 21:33 23830
drwxr-xr-x 22 root root 4096 Jul 2 13:19 24357
lrwxr-xr-x 22 root root 4096 Jul 2 13:19 latest -> 24357
-r--r--r-- 22 root root 4096 Jul 2 13:19 .pid
__sources :__ [[https://nos-oignons.net/wiki-admin/Proc%C3%A9dures/Manipuler_les_sauvegardes/|https://nos-oignons.net/wiki-admin/Proc%C3%A9dures/Manipuler_les_sauvegardes/]]
===== Erreurs et problèmes rencontrés =====
==== Couldn't create lock ... ====
# backup
00h00m06s 1 files 0 B scanned: locking clientERROR: R681AEX: Couldn't create lock 114327624274822128/lock: timeout
$ man obnam
(...)
· force-lock removes a lock file for a client in the repository. You should only force a lock if you are sure no-one is ac‐
cessing that client's data in the repository. A dangling lock might happen, for example, if obnam loses its network connec‐
tion to the backup repository.
(...)
# obnam force-lock
# backup
# backup
00h00m12s 1 files 0 B scanned: starting new generation
(...)
===== À essayer =====
* Faire des modifications puis restaurer et vérifier que tout est bien comme avant.
* Envoyer le backup dans un dossier [[encfs]] pour le chiffrement.
* Évaluer tout ce qu'on veut sauvegarder sur un serveur et mettre tout dans un script.
* ...
===== Sources =====
* [[https://sanskritfritz.wordpress.com/2014/04/24/backup-with-obnam-and-encfs/|backup with obnam and encfs (sanskritfritz.wordpress.com)]]
* [[https://nos-oignons.net/wiki-admin/Proc%C3%A9dures/Manipuler_les_sauvegardes/|Manipuler les sauvegardes (nos-oignons.net)]]