backup maken en unmounten

De plek voor je tutorials en howto's
JosVa
Nieuweling
Nieuweling
Berichten: 18
Lid geworden op: Za 06 Dec 2014, 10:50

backup maken en unmounten

Berichtdoor JosVa » Zo 06 Aug 2017, 19:32

Ik heb voor Windows een batchfile gemaakt die bij het opstarten op een externe USB-harde schijf een incrementele backup maakt van de data-folders en daarna de USB-harddisk uitwerpt. Alleen de gewijzigde data wordt afhankelijk van de datum op even cq. oneven folders gebackuped. Voordeel is dat deze schijf daarna niet meer bereikbaar is tenzij unplugged->replugged. De backup is redelijk snel omdat alleen de wijzigingen worden verwerkt. Op deze manier heb je een redelijke zekerheid tegen verlies van persoonlijke data. Nadeel is dat je even wachten moet bij het opstarten of gewoon alvast begint te werken.

Nu wil ik graag voor Linux Mint v17 een zelfde programmaatje maken dat automatisch de laatste wijzigingen backuped en daarna die USB-schijf unmount. Wie kan mij hierbij helpen?
JosVa
Nieuweling
Nieuweling
Berichten: 18
Lid geworden op: Za 06 Dec 2014, 10:50

Re: backup maken en unmounten

Berichtdoor JosVa » Zo 06 Aug 2017, 19:40

Hier is de batchfile als voorbeeld in Windows. De USB-HD schijf hangt bij het opstarten standaard aan de H: of I:.
Het programmaatje USB_Disk_Eject.exe zorgt voor het "unmounten" onder Windows.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
echo off
set dag=%DATE:~0,2%
if "%dag%"=="01 " goto oneven
if "%dag%"=="02 " goto even
if "%dag%"=="03 " goto oneven
if "%dag%"=="04 " goto even
if "%dag%"=="05 " goto oneven
if "%dag%"=="06 " goto even
if "%dag%"=="07 " goto oneven
if "%dag%"=="08 " goto even
if "%dag%"=="09 " goto oneven
if "%dag%"=="10 " goto even
if "%dag%"=="11 " goto oneven
if "%dag%"=="12 " goto even
if "%dag%"=="13 " goto oneven
if "%dag%"=="14 " goto even
if "%dag%"=="15 " goto oneven
if "%dag%"=="16 " goto even
if "%dag%"=="17 " goto oneven
if "%dag%"=="18 " goto even
if "%dag%"=="19 " goto oneven
if "%dag%"=="20 " goto even
if "%dag%"=="21 " goto onevenv
if "%dag%"=="22 " goto even
if "%dag%"=="23 " goto oneven
if "%dag%"=="24 " goto even
if "%dag%"=="25 " goto oneven
if "%dag%"=="26 " goto even
if "%dag%"=="27 " goto oneven
if "%dag%"=="28 " goto even
if "%dag%"=="29 " goto oneven
if "%dag%"=="30 " goto even
if "%dag%"=="31 " goto oneven
echo geen dag gevonden
pause
exit

rem >>>>>>>>>>>>>>>>>>>>>>>>>>>>oneven
:oneven
echo dag is nu oneven

If exist "H:\usb_disk_eject.exe" goto H
If exist "I:\usb_disk_eject.exe" goto I
echo USB H-I-disks not found
echo Intel backup.bat found at C:\Users\Intel\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\Intel backup.bat
PAUSE
exit

:H
xcopy F:\"mijn email" H:\oneven\email /E /H /R /Y /I /D
xcopy F:\"mijn docs" H:\oneven\docs /E /H /R /Y /I /D
xcopy F:\"mijn fotos" H:\oneven\fotos /E /H /R /Y /I /D
H:\USB_Disk_Eject.exe /REMOVEletter H
exit

:I
xcopy F:\"mijn email" I:\oneven\email /E /H /R /Y /I /D
xcopy F:\"mijn docs" I:\oneven\docs /E /H /R /Y /I /D
xcopy F:\"mijn fotos" I:\oneven\fotos /E /H /R /Y /I /D
I:\USB_Disk_Eject.exe /REMOVEletter I
exit

rem >>>>>>>>>>>>>>>>>>>>>>>>>>>>even
:even
echo dag is nu even

If exist "H:\usb_disk_eject.exe" goto H
If exist "I:\usb_disk_eject.exe" goto I
echo USB H-I-disks not found
echo Intel backup.bat found at C:\Users\Intel\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\Intel backup.bat
PAUSE
exit

:H
xcopy F:\"mijn email" H:\even\email /E /H /R /Y /I /D
xcopy F:\"mijn docs" H:\even\docs /E /H /R /Y /I /D
xcopy F:\"mijn fotos" H:\even\fotos /E /H /R /Y /I /D
H:\USB_Disk_Eject.exe /REMOVEletter H
exit

:I
xcopy F:\"mijn email" I:\even\email /E /H /R /Y /I /D
xcopy F:\"mijn docs" I:\even\docs /E /H /R /Y /I /D
xcopy F:\"mijn fotos" I:\even\fotos /E /H /R /Y /I /D
I:\USB_Disk_Eject.exe /REMOVEletter I
exit
Wilfried1954
Algemene moderator
Algemene moderator
Berichten: 800
Lid geworden op: Ma 08 Dec 2014, 11:26
Contact:

Re: backup maken en unmounten

Berichtdoor Wilfried1954 » Ma 07 Aug 2017, 08:38

In het begin van de batch file zet je:

Code: Selecteer alles

#!/bin/bash

Daaronder kan je dit nog zetten, dan krijg je tijdens het testen extra debug informatie:

Code: Selecteer alles

set -x

Zo kan je mounten (in dit voorbeeld sda1):

Code: Selecteer alles

echo "mijnwachtwoord" | sudo -S mount /dev/sda1 /media/wilfried

Zo kan je het doen als je je wachtwoord zelf wilt intikken in een venster:

Code: Selecteer alles

gksudo -S mount /dev/sda1 /media/wilfried

Dit is dan de de code om te backuppen:

Code: Selecteer alles

rsync -rav --delete 'source filder' /media/wilfried/destination_folder

Zo doe je de unmount:

Code: Selecteer alles

sudo umount /media/wilfried

Dit voorbeeld doet geen incrementele, maar copieerd alleen wat gewijzigd is, dat gaat heel vlug (vanaf de 2de keer). Incrementeel gaat ook met rsync maar daar heb ik niet direct een voorbeeld van.
Linux Mint 17.1 en 18.1 Mate 64 bit
JosVa
Nieuweling
Nieuweling
Berichten: 18
Lid geworden op: Za 06 Dec 2014, 10:50

Re: backup maken en unmounten

Berichtdoor JosVa » Ma 07 Aug 2017, 09:56

Wilfried bedankt voor de aanzet. Ik ben wel gewend om te programmeren (in de vorige eeuw begonnen op de eerste MSX) maar Linux is me (nu nog eventjes) een stapje te ver.
Ik begrijp nu en vooral door jouw uitleg waar het langs gaat. Heb via jouw reactie op internet ook al gevonden hoe je met RSYNC dagelijks een incrementele backup kunt maken. En meteen weer wat bijgeleerd over un/mounten. Voordeel is dat de schijf en vooral de backup zo redelijk "beveiligd¨ is tegen "onvoorzichtige" acties.

Terug naar “Tutorials / Howto's”

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 1 gast