Wyszukiwanie w witrynie

Jak automatycznie tworzyć kopie zapasowe plików na nośniku USB po podłączeniu


Kopia zapasowa to ostatnia obrona przed utratą danych, umożliwiająca przywrócenie oryginalnych danych. Do tworzenia kopii zapasowych danych można używać nośników wymiennych, takich jak zewnętrzny dysk twardy, dysk flash USB lub udostępniony folder sieciowy, albo host zdalny. Automatyczne tworzenie kopii zapasowych ważnych plików jest bardzo łatwe (i równie istotne) bez konieczności pamiętania o tym.

Przeczytaj także: 24 najlepsze narzędzia do tworzenia kopii zapasowych dla systemów Linux w 2018 r

W tym artykule dowiemy się, jak automatycznie wykonać kopię zapasową danych na nośniku wymiennym po podłączeniu go do komputera z systemem Linux. Będziemy testować z dyskiem zewnętrznym. Jest to podstawowy przewodnik, dzięki któremu zaczniesz używać udev w rzeczywistych rozwiązaniach.

Na potrzeby tego artykułu potrzebujemy nowoczesnego systemu Linux wyposażonego w:

  1. Menedżer systemów i usług systemd
  2. menedżer urządzeń udev
  3. narzędzie do tworzenia kopii zapasowych rsync

Jak skonfigurować reguły Udev dla nośników wymiennych

Udev to menedżer urządzeń umożliwiający zdefiniowanie reguł, które mogą między innymi uruchamiać wykonanie programu lub skryptu po dodaniu urządzenia do działającego systemu lub usunięciu go z działającego systemu w ramach obsługi zdarzeń urządzenia . Możemy użyć tej funkcji do wykonania skryptu kopii zapasowej po dodaniu nośnika wymiennego do działającego systemu.

Zanim skonfigurujemy właściwą regułę obsługi zdarzeń urządzenia, musimy podać udev pewne atrybuty nośnika wymiennego, który będzie używany do tworzenia kopii zapasowych. Podłącz dysk zewnętrzny do działającego systemu i uruchom następującą komendę lsusb, aby zidentyfikować jego dostawcę i identyfikator produktu.

Do celów testowych użyjemy zewnętrznego dysku twardego o pojemności 1 TB, jak pokazano.

lsusb

Z wyniku powyższego polecenia wynika, że identyfikator dostawcy naszego urządzenia to 125f, który określimy w regułach udev, jak wyjaśniono poniżej.

Najpierw usuń podłączone nośniki z systemu i utwórz nowy plik reguł udev o nazwie 10.autobackup.rules w katalogu /etc/udev/rules.d/.

10 w nazwie pliku określa kolejność wykonywania reguł. Ważna jest kolejność analizowania reguł; powinieneś zawsze tworzyć niestandardowe reguły, które będą analizowane przed regułami domyślnymi.

sudo vim /etc/udev/rules.d/10.autobackup.rules

Następnie dodaj w nim następującą regułę:

SUBSYSTEM=="block", ACTION=="add", ATTRS{idVendor}=="125f" SYMLINK+="external%n", RUN+="/bin/autobackup.sh"

Wyjaśnijmy krótko powyższą zasadę:

  • "==": jest operatorem porównywania pod kątem równości.
  • "+=": to operator dodający wartość do klucza przechowującego listę wpisów.
  • SUBSYSTEM: odpowiada podsystemowi urządzenia eventowego.
  • AKCJA: odpowiada nazwie akcji zdarzenia.
  • ATTRS{idVendor: dopasowuje wartości atrybutów sysfs urządzenia zdarzenia, które jest identyfikatorem dostawcy urządzenia.
  • URUCHOM: określa program lub skrypt do wykonania w ramach obsługi zdarzenia.

Zapisz plik i zamknij go.

Utwórz skrypt automatycznej kopii zapasowej

Teraz utwórz skrypt automatycznego tworzenia kopii zapasowych, który po podłączeniu do systemu automatycznie wykona kopię zapasową plików na wymiennym nośniku USB.

sudo vim /bin/autobackup.sh 

Teraz skopiuj i wklej następujący skrypt, pamiętaj o zastąpieniu w skrypcie wartości BACKUP_SOURCE, BACKUP_DEVICE i MOUNT_POINT.

#!/usr/bin/bash
BACKUP_SOURCE="/home/admin/important"
BACKUP_DEVICE="/dev/external1"
MOUNT_POINT="/mnt/external"


#check if mount point directory exists, if not create it
if [ ! -d “MOUNT_POINT” ] ; then 
	/bin/mkdir  “$MOUNT_POINT”; 
fi

/bin/mount  -t  auto  “$BACKUP_DEVICE”  “$MOUNT_POINT”

#run a differential backup of files
/usr/bin/rsync -auz "$MOUNT_POINT" "$BACKUP_SOURCE" && /bin/umount "$BACKUP_DEVICE"
exit

Następnie spraw, aby skrypt był wykonywalny za pomocą następującego polecenia.

sudo chmod +x /bin/autobackup.sh

Następnie załaduj ponownie reguły udev za pomocą następującego polecenia.

udevadm control --reload

Następnym razem, gdy podłączysz do systemu zewnętrzny dysk twardy lub inne urządzenie, które skonfigurowałeś, wszystkie dokumenty z określonej lokalizacji powinny zostać automatycznie zapisane na nim.

Uwaga: na efektywność tego działania może mieć wpływ system plików na nośniku wymiennym oraz napisane przez Ciebie reguły udev, zwłaszcza dotyczące przechwytywania atrybutów urządzenia.

Więcej informacji znajdziesz na stronach podręcznika udev, mount i rsync.

man udev
man mount 
man rsync 

Możesz także przeczytać następujące artykuły dotyczące kopii zapasowych systemu Linux.

  1. rdiff-backup – narzędzie do zdalnej przyrostowej kopii zapasowej dla systemu Linux
  2. Tomb – narzędzie do szyfrowania plików i tworzenia kopii zapasowych osobistych dla systemu Linux
  3. System Tar and Restore – wszechstronny skrypt do tworzenia kopii zapasowych dla systemu Linux
  4. Jak tworzyć wydajne kopie zapasowe przy użyciu duplikacji w systemie Linux
  5. Rsnapshot – narzędzie do lokalnego/zdalnego tworzenia kopii zapasowych dla systemu Linux
  6. Jak zsynchronizować dwa serwery/strony internetowe Apache za pomocą Rsync

To wszystko na teraz! W tym artykule wyjaśniliśmy, jak automatycznie tworzyć kopie zapasowe danych na nośniku wymiennym po podłączeniu go do komputera z systemem Linux. Chcielibyśmy poznać Twoją opinię za pośrednictwem poniższego formularza opinii.