Slik sikkerhetskopierer du filer automatisk til USB-medier når du er tilkoblet


En sikkerhetskopi er det siste forsvaret mot tap av data, og tilbyr en måte å gjenopprette originale data. Du kan bruke enten et flyttbart medium som en ekstern harddisk eller USB-flashdisk eller en delt nettverksmappe, eller en ekstern vert for å sikkerhetskopiere dataene dine. Det er veldig enkelt (og like viktig) å automatisk sikkerhetskopiere viktige filer uten at du trenger å huske å gjøre det.

I denne artikkelen vil vi lære hvordan du automatisk sikkerhetskopierer data til et flyttbart medium etter å ha koblet det til din Linux-maskin. Vi vil teste med en ekstern disk. Dette er en grunnleggende guide for å komme i gang med å bruke udev for virkelige løsninger.

For formålet med denne artikkelen trenger vi et moderne Linux-system med:

  1. systemd systems and services manager
  2. udev enhetsbehandling
  3. rsync-sikkerhetskopieringsverktøy

Slik konfigurerer du Udev-regler for flyttbare medier

Udev er en enhetsbehandler som lar deg definere regler som blant annet kan utløse kjøring av et program eller skript når en enhet legges til eller fjernes fra et kjørende system, som en del av enhetens hendelseshåndtering. Vi kan bruke denne funksjonen til å utføre et sikkerhetskopiskript etter å ha lagt til et flyttbart medium til det kjørende systemet.

Før vi konfigurerer selve regelen for håndtering av enhetshendelser, må vi gi udev noen attributter for det flyttbare mediet som skal brukes til sikkerhetskopieringen. Koble den eksterne disken til det kjørende systemet og kjør følgende lsusb-kommando for å identifisere dens leverandør og produkt-ID.

For testformålet vil vi bruke 1TB ekstern harddisk som vist.

$ lsusb

Fra utdataene fra kommandoen ovenfor er enhetsleverandør-ID-en vår 125f, som vi vil spesifisere i udev-reglene som forklart nedenfor.

Fjern først det tilkoblede mediet fra systemet og lag en ny udev-regelfil kalt 10.autobackup.rules under katalogen /etc/udev/rules.d/.

10-tallet i filnavnet spesifiserer rekkefølgen for utførelse av regler. Rekkefølgen regler analyseres i er viktig; du bør alltid lage egendefinerte regler som skal analyseres før standardinnstillingene.

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

Legg deretter til følgende regel i den:

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

La oss kort forklare regelen ovenfor:

  • ==\: er en operatør for å sammenligne for likhet.
  • \+=\: er en operatør for å legge til verdien til en nøkkel som inneholder en liste over oppføringer.
  • SUBSYSTEM: samsvarer med undersystemet til hendelsesenheten.
  • HANDLING: samsvarer med navnet på hendelseshandlingen.
  • ATTRS{idVendor}: samsvarer med sysfs-attributtverdiene til hendelsesenheten, som er enhetens leverandør-ID.
  • RUN: spesifiserer et program eller skript som skal kjøres som en del av hendelseshåndteringen.

Lagre filen og lukk den.

Lag et skript for automatisk sikkerhetskopiering

Lag nå et skript for automatisk sikkerhetskopiering som automatisk sikkerhetskopierer filer til flyttbar USB når den er koblet til systemet.

$ sudo vim /bin/autobackup.sh 

Kopier og lim inn følgende skript, sørg for å erstatte verdiene for BACKUP_SOURCE, BACKUP_DEVICE og MOUNT_POINT i skriptet.

#!/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

Gjør deretter skriptet kjørbart med følgende kommando.

$ sudo chmod +x /bin/autobackup.sh

Last deretter udev-regler på nytt ved å bruke følgende kommando.

$ udevadm control --reload

Neste gang du kobler til den eksterne harddisken eller hvilken som helst enhet du har konfigurert til systemet, bør alle dokumentene dine fra den angitte plasseringen automatisk sikkerhetskopieres til den.

Merk: Hvor effektivt dette fungerer kan påvirkes av filsystemet på det flyttbare mediet og udev-reglene du skriver, spesielt fangst av enhetsattributter.

For mer informasjon, se man-sidene for udev, mount og rsync.

$ man udev
$ man mount 
$ man rsync 

Du vil kanskje også lese disse følgende Linux-sikkerhetskopieringsrelaterte artikler.

  1. rdiff-backup – et eksternt inkrementelt sikkerhetskopieringsverktøy for Linux
  2. Tomb – Et filkryptering og personlig sikkerhetskopieringsverktøy for Linux
  3. System Tar and Restore – Et allsidig sikkerhetskopieringsskript for Linux
  4. Hvordan lage båndbreddeeffektive sikkerhetskopier ved å bruke duplisitet i Linux
  5. Rsnapshot – Et lokalt/eksternt sikkerhetskopieringsverktøy for Linux
  6. Hvordan synkronisere to Apache-nettservere/-nettsteder ved hjelp av Rsync

Det er alt for nå! I denne artikkelen har vi forklart hvordan du automatisk sikkerhetskopierer data til et flyttbart medium etter å ha koblet det til din Linux-maskin. Vi vil gjerne høre fra deg via tilbakemeldingsskjemaet nedenfor.