Backup » Historique » Version 13
Laurent GUERBY, 14/04/2016 17:51
1 | 3 | Laurent GUERBY | {{>toc}} |
---|---|---|---|
2 | 1 | Laurent GUERBY | |
3 | 1 | Laurent GUERBY | h1. Backup |
4 | 1 | Laurent GUERBY | |
5 | 1 | Laurent GUERBY | h2. Liens |
6 | 1 | Laurent GUERBY | |
7 | 1 | Laurent GUERBY | * [[Backup_infra]] |
8 | 1 | Laurent GUERBY | * [[Apt_Backports_TTNN]] borg debian packaging |
9 | 6 | Laurent GUERBY | * https://www.reddit.com/r/linux/comments/42feqz/i_asked_here_for_the_optimal_backup_solution_and/ |
10 | 1 | Laurent GUERBY | |
11 | 1 | Laurent GUERBY | h2. BackupPC |
12 | 1 | Laurent GUERBY | |
13 | 1 | Laurent GUERBY | * http://backuppc.sourceforge.net/ |
14 | 1 | Laurent GUERBY | |
15 | 1 | Laurent GUERBY | h2. Attic |
16 | 1 | Laurent GUERBY | |
17 | 1 | Laurent GUERBY | * https://attic-backup.org/ |
18 | 1 | Laurent GUERBY | * https://lists.tetaneutral.net/pipermail/technique/2015-September/001971.html |
19 | 1 | Laurent GUERBY | ** Logiciel de backup : choix de attic |
20 | 1 | Laurent GUERBY | |
21 | 1 | Laurent GUERBY | h2. Borg |
22 | 1 | Laurent GUERBY | |
23 | 1 | Laurent GUERBY | * https://github.com/borgbackup |
24 | 1 | Laurent GUERBY | * http://readthedocs.org/projects/borgbackup/ |
25 | 2 | Laurent GUERBY | * http://puppet.tetaneutral.net/pool/main/b/borgbackup/ |
26 | 2 | Laurent GUERBY | * http://puppet.tetaneutral.net/dists/ |
27 | 1 | Laurent GUERBY | |
28 | 11 | Laurent GUERBY | h2. Borg script |
29 | 11 | Laurent GUERBY | |
30 | 11 | Laurent GUERBY | Pour une machine qui va etre eteinte et rallumée de maniere non controlable. |
31 | 11 | Laurent GUERBY | |
32 | 12 | Laurent GUERBY | Creation initiale avec un user normal capable de ssh sur MACHINE:PORT : |
33 | 12 | Laurent GUERBY | |
34 | 12 | Laurent GUERBY | <pre> |
35 | 12 | Laurent GUERBY | borg init --encryption keyfile ssh://USER@MACHINE:PORT/some/where/borg/NICK-repo |
36 | 12 | Laurent GUERBY | </pre> |
37 | 12 | Laurent GUERBY | |
38 | 12 | Laurent GUERBY | Et setup cron + script : |
39 | 11 | Laurent GUERBY | <pre> |
40 | 11 | Laurent GUERBY | # crontab -l |
41 | 11 | Laurent GUERBY | @reboot /root/cron-borg.sh |
42 | 11 | Laurent GUERBY | |
43 | 11 | Laurent GUERBY | |
44 | 11 | Laurent GUERBY | |
45 | 11 | Laurent GUERBY | # cat /root/cron-borg.sh |
46 | 11 | Laurent GUERBY | #!/bin/bash |
47 | 11 | Laurent GUERBY | export LANG=en_US.UTF-8 |
48 | 11 | Laurent GUERBY | mkdir -p /root/borg >& /dev/null |
49 | 11 | Laurent GUERBY | |
50 | 11 | Laurent GUERBY | sleep 300 |
51 | 11 | Laurent GUERBY | echo === start === $(date) >> /root/borg/cron.log |
52 | 11 | Laurent GUERBY | |
53 | 11 | Laurent GUERBY | NICK=myhost |
54 | 11 | Laurent GUERBY | REPO=ssh://USER@MACHINE:PORT/some/where/borg/${NICK}-repo |
55 | 11 | Laurent GUERBY | export BORG_PASSPHRASE=lalalala |
56 | 11 | Laurent GUERBY | |
57 | 11 | Laurent GUERBY | if [ -f /root/borg/stamp ]; then |
58 | 11 | Laurent GUERBY | STAMP=$(cat /root/borg/stamp) |
59 | 11 | Laurent GUERBY | borg break-lock $REPO |
60 | 11 | Laurent GUERBY | else |
61 | 11 | Laurent GUERBY | STAMP=$(date '+%Y%m%dT%H%M%S') |
62 | 11 | Laurent GUERBY | if [ -f /root/borg/previous-stamp ]; then |
63 | 11 | Laurent GUERBY | PREVIOUS_STAMP=$(cat /root/borg/previous-stamp) |
64 | 11 | Laurent GUERBY | if [ "${STAMP%T*}" = "${PREVIOUS_STAMP%T*}" ]; then |
65 | 11 | Laurent GUERBY | echo === delay === $(date) >> /root/borg/cron.log |
66 | 13 | Laurent GUERBY | exit 0 |
67 | 11 | Laurent GUERBY | fi |
68 | 11 | Laurent GUERBY | fi |
69 | 11 | Laurent GUERBY | echo $STAMP > /root/borg/stamp |
70 | 11 | Laurent GUERBY | fi |
71 | 11 | Laurent GUERBY | |
72 | 11 | Laurent GUERBY | |
73 | 11 | Laurent GUERBY | borg create --compression lz4 --stats --verbose --exclude /root/borg --exclude-caches --one-file-system ${REPO}::${NICK}-$STAMP / >> /root/borg/log-$STAMP 2>> /root/borg/err-$STAMP |
74 | 11 | Laurent GUERBY | |
75 | 11 | Laurent GUERBY | if [ $? -eq 0 ]; then |
76 | 11 | Laurent GUERBY | mv -f /root/borg/stamp /root/borg/previous-stamp >& /dev/null |
77 | 11 | Laurent GUERBY | rm -f /root/borg/stamp >& /dev/null |
78 | 11 | Laurent GUERBY | fi |
79 | 11 | Laurent GUERBY | |
80 | 11 | Laurent GUERBY | |
81 | 11 | Laurent GUERBY | echo === done === $(date) >> /root/borg/cron.log |
82 | 11 | Laurent GUERBY | </pre> |
83 | 11 | Laurent GUERBY | |
84 | 1 | Laurent GUERBY | h2. Migration Attic vers Borg |
85 | 1 | Laurent GUERBY | |
86 | 7 | Laurent GUERBY | * https://github.com/borgbackup/borg/pull/231 |
87 | 4 | Mehdi Abaakouk | * old: https://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/puppet-backup |
88 | 4 | Mehdi Abaakouk | * new: https://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/puppetmaster/revisions/master/entry/modules/ttnn/manifests/backup.pp |
89 | 1 | Laurent GUERBY | ** git history BackupPC => Attic => Borg |
90 | 1 | Laurent GUERBY | |
91 | 4 | Mehdi Abaakouk | <pre> |
92 | 5 | Laurent GUERBY | # apt-get -t jessie-backports install borgbackup |
93 | 4 | Mehdi Abaakouk | $ cd /backup/attic/ |
94 | 4 | Mehdi Abaakouk | $ borg upgrade <repo> |
95 | 4 | Mehdi Abaakouk | $ borg check --repair <repo> |
96 | 4 | Mehdi Abaakouk | $ mv <repo> ../borg/ |
97 | 4 | Mehdi Abaakouk | $ chown -R backupinfra: /backup/borg/<repo> |
98 | 4 | Mehdi Abaakouk | </pre> |
99 | 4 | Mehdi Abaakouk | |
100 | 8 | Laurent GUERBY | Dans le module puppet, le changement le plus important est le parametre compression explicite pour correspondre au défaut de attic create : |
101 | 4 | Mehdi Abaakouk | |
102 | 4 | Mehdi Abaakouk | <pre> |
103 | 8 | Laurent GUERBY | attic create ... <repo> -> borg create --compression zlib,6 ... <repo> |
104 | 4 | Mehdi Abaakouk | </pre> |
105 | 4 | Mehdi Abaakouk | |
106 | 4 | Mehdi Abaakouk | Sinon le prochain backup sera non compressé, et aucun nouveau chucks ne correspondra aux anciens -> perte de la dedup. "zlib,6" étant le niveau de compression de attic. |
107 | 9 | Laurent GUERBY | |
108 | 9 | Laurent GUERBY | https://github.com/jborg/attic/issues/299 |
109 | 10 | Laurent GUERBY | http://borgbackup.readthedocs.org/en/stable/usage.html#environment-variables |
110 | 9 | Laurent GUERBY | <pre> |
111 | 9 | Laurent GUERBY | export ATTIC_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=yes |
112 | 9 | Laurent GUERBY | </pre> |