Pokazywanie postów oznaczonych etykietą archiwum. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą archiwum. Pokaż wszystkie posty

piątek, 11 listopada 2022

Jak trwoga to do Bo(r)ga

 Ten poradnik napisałem "dla siebie", bo z upływem lat moja pamięć może zacząć być awaryjną. To kopia zapasowa mojej pamięci dotycząca użycia programu Borg do robienia kopii zapasowych. Jeżeli oprócz mnie, przyda się komukolwiek, to będę usatysfakcjonowany.

Moje użycie Borg dla wykonania kopii systemu “/” wraz z “/root” bez “/home”:

1. Utwórz w katalogu /root/ plik o nazwie rootbackupinit.sh i nadaj mu uprawnienia do uruchamiania.

Oto zawartość pliku rootbackupinit.sh:

#!/bin/bash

borg init -e repokey (tu ścieżka do tworzenia archiwum kopii zapasowej)


U mnie tak to wygląda:

sudo borg init -e repokey /media/backup/Kopia-borg/System


2. Następnie utwórz w katalogu /root plik rootbackup.sh

Oto zawartość mojego pliku rootbackup.sh w systemie Arch Linux, który oczywiście należy dostosować do własnych potrzeb. Czyli wpisać swoją ścieżkę do zapisywanego archiwum i ewentualnie zmienić ustawienia archiwizowań i wykluczeń.

#!/bin/bash

# załaduj ścieżki niestandardowe, jeśli plik ścieżki istnieje, w przeciwnym razie utwórz nowy plik ścieżki

pathfile="/root/.paths.sh"

if [ ! -f ${pathfile} ]; then

  echo 'export PATHS=("")' > ${pathfile}

fi

source ${pathfile}

PATHS=(

  "${PATHS[@]}"   # load paths from pathfile

  "/bin"

  "/boot"

  "/etc"

  "/lib"

  "/lib64"

  "/opt"

  "/root"

  "/sbin"

  "/srv"

  "/usr"

  "/var"

)

# load borg passphase

source /root/.borg.sh

# date in format: YYYY-MM-DD_HH-MM round to 15 minutes blocks

DATE=$(date +"%Y-%m-%d_%H")-$(echo "$(date +%M) - ($(date +%M)%15)" | bc)

borg create --stats --progress --compression lz4 \

    --exclude /dev \

    --exclude /home \

    --exclude /mnt \

    --exclude /media \

    --exclude /proc \

    --exclude /run \

    --exclude /swapfile \

    --exclude /tmp \

    --exclude /sys \

    --exclude /lost+found \

/media/backup/Kopia/BCK::${DATE} ${PATHS[@]}


3. Aby nie wpisywać każdorazowo hasła przy tworzeniu archiwum, utwórz w katalogu /root plik .borg.sh z zawartością: 

#!/bin/bash

export BORG_PASSPHRASE="tutaj wpisz hasło do tworzonej przez borg kopii zapasowej"


4. Utwórz również w katalogu /root plik .paths.sh zawierający:

export PATHS=("")


5. Aby zainicjować po raz pierwszy archiwum borg wykonaj w konsoli polecenie:

sudo -i


a następnie zainicjuj po raz pierwszy archiwum poleceniem:

rootbackupinit.sh 


Borg zapyta o hasło do tworzonej struktury archiwum, więc trzeba je zapamiętać, inaczej nici z przyszłego dostępu!


6. Aby zrobić kopię zapasową za pomocą programu borg napisz w konsoli:

rootbackup.sh


Uwaga! 

Wykonując następne kopie nie zapomnij zacząć od wpisania w konsoli:

sudo -i

a dopiero później:

rootbackup.sh


Następne kopie systemu dodawane do archiwum będą kopiami przyrostowymi i nie spowodują "pożerania" zasobów dysku z kopią.

7. Montowanie wykonanych kopii archiwów.

Aby zamontować archiwum wygodnie jest utworzyć w katalogu /root pliku rootborgmount.sh zawierającego:

#!/bin/bash

borg mount /media/backup/Kopia-borg/System /root/mnt


W konsoli wykonujemy polecenie:

rootborgmount.sh

i archiwum zostanie zamontowane w /root/mnt

Możemy tak zamontowaną zawartość archiwum przeglądać jak zwyczajną strukturę katalogów i plików i np. kopiować cokolwiek do systemu.


8. Odmontowanie kopii archiwów zamontowanych w /root/mnt

Aby odmontować archiwum wygodnie jest utworzyć w katalogu /root pliku rootborgumount.sh zawierającego:

#!/bin/bash

borg umount /root/mnt


Moje użycie Borg dla wykonania kopii katalogu domowego /home/user

1. Utwórz w /home/user plik potrzebny dla zainicjowania po raz pierwszy archiwum borg userbackupinit.sh o treści:

#!/bin/bash

borg init -e repokey /media/backup/Kopia-borg/Home-user


2. Następnie utwórz w katalogu /home/user plik userbackup.sh

Oto zawartość mojego pliku userbackup.sh w systemie Arch Linux, który oczywiście należy dostosować do własnych potrzeb. Czyli wpisać swoją ścieżkę do zapisywanego archiwum i ewentualnie zmienić ustawienia archiwizowań i wykluczeń.

#!/bin/bash

# załaduj ścieżki niestandardowe, jeśli plik ścieżki istnieje, w przeciwnym razie utwórz nowy plik ścieżki

pathfile="/home/user/.paths.sh"

if [ ! -f ${pathfile} ]; then

  echo 'export PATHS=("")' > ${pathfile}

fi

source ${pathfile}

PATHS=(

  "${PATHS[@]}"   # load paths from pathfile

  "/home/user"

)

# load borg passphase

source /home/user/.borg.sh

# date in format: YYYY-MM-DD_HH-MM round to 15 minutes blocks

DATE=$(date +"%Y-%m-%d_%H")-$(echo "$(date +%M) - ($(date +%M)%15)" | bc)

borg create --stats --progress --compression lz4 \

    --exclude /dev \

    --exclude /mnt \

    --exclude /media \

    --exclude /proc \

    --exclude /run \

    --exclude /swapfile \

    --exclude /tmp \

    --exclude /sys \

    --exclude /lost+found \

/media/backup/Kopia-borg/Home-user::${DATE} ${PATHS[@]}


3. Aby nie wpisywać każdorazowo hasła przy tworzeniu archiwum, utwórz w katalogu /home/user plik .borg.sh z zawartością:

#!/bin/bash

export BORG_PASSPHRASE="tu wpisz swoje hasło do tworzonej przez borg kopii zapasowej"


4. Utwórz w /home/user/ plik .paths.sh:

#!/bin/bash

export PATHS=("")


5. Aby zainicjować po raz pierwszy archiwum borg wykonaj w konsoli polecenie:

userbackupinit.sh


Borg zapyta o hasło do tworzonej struktury archiwum, więc trzeba je zapamiętać, inaczej nici z przyszłego dostępu!


6. Aby zrobić kopię zapasową napisz w konsoli:

userbackup.sh


Następne kopie systemu dodawane do archiwum będą kopiami przyrostowymi i nie spowodują "pożerania" zasobów dysku z kopią. 


7. Montowanie wykonanych kopii archiwów.

Aby zamontować archiwum wygodnie jest utworzyć w katalogu /home/user pliku userborgmount.sh zawierającego:

#!/bin/bash

borg mount /media/backup/Kopia-borg/Home-user /home/user/mnt


Aby utworzone przez borg archiwum kopii zapasowej zamontować w /home/user/mnt wykonaj w konsoli:

userborgmount.sh


Możemy tak zamontowaną zawartość archiwum przeglądać jak zwyczajną strukturę katalogów i plików i np. kopiować cokolwiek do systemu.


8. Aby odmontować archiwum wygodnie jest utworzyć w katalogu /home/user pliku userborgumount.sh zawierającego:

#!/bin/bash

borg umount /home/user/mnt


Aby zamontowane archiwum kopii zapasowej odmontować wykonaj w konsoli:

userborgumount.sh


Dla "wygody" można też doinstalować graficzną nakładkę na borg o nazwie Vorta, ale robienie kopii zapasowych za pomocą poleceń w konsoli jest o wiele szybsze i dużo łatwiejsze. Tym bardziej, że można użyć cron, gdy kopie mają być wykonywane automatycznie w określonym czasie.

Więcej poleceń dotyczących obsługi Borg znajduje się pod adresem:

Borg - szybki start (translator Google na język polski)

lub to samo na stronie angielskojęzycznej:

Borg - Quick Start

Morfitronik - Tworzenie kopii zapasowej linux'a z BorgBackup