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:
Morfitronik - Tworzenie kopii zapasowej linux'a z BorgBackup
Brak komentarzy:
Prześlij komentarz