Script: backup naar interne ssd

Alles over programmeren in Linux
Gebruikersavatar
Mogenblue
Volwaardig lid
Volwaardig lid
Berichten: 77
Lid geworden op: Wo 18 Okt 2017, 08:27
Locatie: Amsterdam

Script: backup naar interne ssd

Berichtdoor Mogenblue » Wo 20 Jan 2021, 21:42

Iemand wel eens van backup gehoord? ;)

Ik had een ssd over en besloot deze in te zetten als backup disk in mijn desktop.
Ik heb hem gemount onder de home directory als /home/ssd2tb. Dan hoef ik niet zover te navigeren als ik hem wil bekijken.
In de map ssd2tb heb ik een map backup gemaakt. Die gebruik ik dan om tussentijds even een backup te maken.

Als ik iets kwijtraak is dat vrijwel altijd door menselijke fouten. Met die backup mogelijkheid kan ik even tussendoor een backup maken als ik vind dat alles op dat moment goed is. Het werkt erg snel en is maar één klik met de muis.
De eerste keer duurt het erg lang omdat dan alle bestanden worden gekopiëerd. Dus dan moet je even geduld hebben. De volgende keer is het veel sneller.

Voor de safe backup heb ik een externe ssd, maar die gebruik ik maar af en toen. Dus dan heb je meer risico dat je iets kwijtraakt.

Ik heb het volgende script gemaakt, backup-ssd-intern.sh:

Code: Selecteer alles

#!/bin/bash

# backup
# rsync desktop van mogenblue naar ssd
# als de rsync opdrachten in de achtergrond worden uitgevoerd kunnen ze tegelijkertijd worden uitgevoerd

# -r, --recursive recurse into directories
# -t, --times preserve modification times
# -u, --update skip files that are newer on the receiver
# -s, --protect-args no space-splitting; wildcard chars only
# -l, --links copy symlinks as symlinks
# --exclude 'PATTERN' exclude files matching PATTERN
# -m, --prune-empty-dirs prune empty directory chains from file-list
# --delete delete extraneous files from dest dirs

Opties='-r -t -u -s -l -m --delete'
Bron='/home/mogenblue'
Doel='/home/ssd2tb/backup/mogenblue'

#-------------------------------------------------------------------------------------------------------------

(

rsync $Opties $Bron/Documenten $Doel &

rsync $Opties $Bron/Afbeeldingen $Doel &

# wacht op voltooiing van alle background processen
wait
echo "# Backup muziek en video's..."

rsync $Opties $Bron/Muziek $Doel &

rsync $Opties "$Bron/Video's" $Doel &

# minimaal 1 seconde tonen ter bevestiging van backup
wait
echo "# Backup voltooid."
sleep 2


) |
zenity --progress \
--title="Backup naar ssd op desktop" \
--text="Backup documenten en afbeeldingen..." \
--percentage=0 --pulsate \
--auto-close --no-cancel --width=600
Zoals je ziet staan bron en doel bovenaan in het script. Het is dus vrij eenvoudig aan je eigen situatie aan te passen. Je zou het ook moeten kunnen gebruiken om naar een usb stick te schrijven, als je steeds dezelfde poort gebruikt.

Let wel op dat je niet een / aan het eind van doelmappen toevoegt want dan wordt de bron er aan toegevoegd. Probeer het anders eerst met één map om te testen.

Dit bestand moet je ook uitvoerbaar maken.
Rechtsklik op het bestand voor het contextmenu.
Selecteer Eigenschappen.
Ga naar de tab Rechten.
Zet een vinkje bij Uitvoeren: Toestaan dat bestand wordt uitgevoerd als programma.

Je kunt een snelkoppeling of een snelstarter voor dit script maken en dan aan je werkbalk toevoegen.

Het rsync commando is zeer uitgebreid. Daar is heel wat mee sleutelen. Voor de duidelijkheid heb ik de betekenis van de gebruikte opties boven in het script meegenomen.


Veel succes,
Frits

Terug naar “Programmeren”

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 1 gast