Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: rsync meerdere directories uitsluiten  (gelezen 580 keer)

Offline peer

  • Lid
  • Steunpunt: Nee
rsync meerdere directories uitsluiten
« Gepost op: 2020/04/23, 15:40:52 »
ik probeer een backupscript te maken met rsync. Ik heb problemen met de exclude-from optie.
Ik heb een test directoru met daarin directories: test1, test2 en test 3.
Ik geef het volgende commando:
rsync -avz --exclude 'test2' --exclude 'test3' /home/peer/Temp/test/ /media/Backup/test/Nu heb ik een textbestand gemaakt excludeList.txt:
test2
test3
en vervolgend de opdracht
rsync -avz --exclude-from 'excludeList.txt' /home/peer/Temp/test/ /media/Backup/test/maar dit werkt niet. Ik heb meerdere varianten geprobeerd (met/zonder volledig pad, met/zonder aanhalingstekens enz.) maar het werkt gewoon niet.

Hoe moet ik de optie "exclude-from 'excludeList.txt" gebruiken zodat het wel werkt.
« Laatst bewerkt op: 2020/04/24, 15:48:58 door peer »

Offline peer

  • Lid
  • Steunpunt: Nee
Re: rsync meerdere directories uitsluiten
« Reactie #1 Gepost op: 2020/04/23, 15:41:56 »
ik probeer een backupscript te maken met rsync. Ik heb problemen met de exclude-from optie.
Ik heb een test directoru met daarin directories: test1, test2 en test 3.
Ik geef het volgende commando:
rsync -avz --exclude 'test2' --exclude 'test3' /home/peer/Temp/test/ /media/Backup/test/En dit doet precies wat ik wil. Twee directories worden niet gekopieerd.

Nu heb ik een textbestand gemaakt excludeList.txt:
test2
test3
en vervolgens de opdracht
rsync -avz --exclude-from 'excludeList.txt' /home/peer/Temp/test/ /media/Backup/test/maar dit werkt niet. Ik heb meerdere varianten geprobeerd (met/zonder volledig pad, met/zonder aanhalingstekens enz.) maar het werkt gewoon niet.

Hoe moet ik de optie "exclude-from 'excludeList.txt" gebruiken zodat het wel werkt.

Offline vanadium

  • Lid
  • Steunpunt: Nee
Re: rsync meerdere directories uitsluiten
« Reactie #2 Gepost op: 2020/04/23, 15:57:15 »
Je moet met volledige paden werken (t.t.z., paden die starten vanuit de bronfolder), of met wildcards werken, vb /home/peer/Temp/test/test2 of *test2* (wat élke folder waarin 'test' voorkomt zal overslaan).

Offline peer

  • Lid
  • Steunpunt: Nee
Re: rsync meerdere directories uitsluiten
« Reactie #3 Gepost op: 2020/04/23, 16:13:33 »
volledige paden heb ik geprobeerd maar werkt niet.
het commando:
rsync -avz --exclude-from '/home/peer/Scripts/backup/excludeList.txt' /home/peer/Temp/test/ /media/Backup/test/Het bestand /home/peer/Scripts/backup/excludeList.txt:
'/home/peer/Temp/test/test2/'
'/home/peer/Temp/test/test3/'
Zowel de verwijzing naar het textbestand als de directories die ik niet wil kopiëren hebben een volledig pad.
Maar alles wordt gewoon gekopieerd.

nahjo

  • Gast
Re: rsync meerdere directories uitsluiten
« Reactie #4 Gepost op: 2020/04/23, 16:21:26 »
--exclude-from=FILE
het = teken ontbreekt.

Offline vanadium

  • Lid
  • Steunpunt: Nee
Re: rsync meerdere directories uitsluiten
« Reactie #5 Gepost op: 2020/04/23, 16:22:07 »
De eind slash moet wellicht weg. Als je na de foldernaam /* zet, wordt de directory zelf wel meegenomen, maar de inhoud niet. Ook moet de /home/peer/Temp/test uit de padnamen.

Zie https://askubuntu.com/questions/349613/how-to-exclude-a-folder-from-rsync
« Laatst bewerkt op: 2020/04/23, 16:28:10 door vanadium »

Offline peer

  • Lid
  • Steunpunt: Nee
Re: rsync meerdere directories uitsluiten
« Reactie #6 Gepost op: 2020/04/23, 16:29:48 »
als ik google dan zie ik meerdere voorbeelden. Soms wordt het =teken gebruikt. soms ook niet. Werkt allebei helaas niet

het excludepad is altijd relatief t.a.v. de source directory volgens "https://www.thegeekstuff.com/2011/01/rsync-exclude-files-and-folders/" dus ik hoef geen volledig pad te gebruiken. Maar waarom werkt het dan niet?
Ik blijf proberen.

Offline peer

  • Lid
  • Steunpunt: Nee
Re: rsync meerdere directories uitsluiten
« Reactie #7 Gepost op: 2020/04/23, 16:38:25 »
ik heb hem. Het probleem werd veroorzaakt door de aanhalingstekens in het textbestand.
De volgende opdracht:
rsync -avz --exclude-from='/home/peer/Scripts/backup/excludeList.txt' /home/peer/Temp/test/ /media/Backup/test/met het volgende textbestand:
test2
test3
doet wat ik wil.
Maar nu moet ik nog even kijken wat er gebeurt als de exclude-directories subdirectories bevatten.
En dan werkt het ook.

Nu is het testen voorbij en kan het echter werk beginnen.
« Laatst bewerkt op: 2020/04/23, 16:40:54 door peer »

Offline vanadium

  • Lid
  • Steunpunt: Nee
Re: [Solved] rsync meerdere directories uitsluiten
« Reactie #8 Gepost op: 2020/04/23, 17:49:18 »
Dan was het bestand excludeList.txt wellicht niet aanwezig in de folder waar je rsync startte. Zoiets zou je dan moeten zien in foutmeldingen.

Een folder uitsluiten, betekent dat er niets van die folder meegenomen wordt, noch bestanden, noch subdirectories.

Offline peer

  • Lid
  • Steunpunt: Nee
Re: rsync meerdere directories uitsluiten
« Reactie #9 Gepost op: 2020/04/24, 16:26:27 »
Vandaag heb ik de eerste echte backup draaaien. Ik ben begonnen met dry runs. In het excludeFile-bestand heb ik eerst alle directories  uit mijn home directory neergezet. En zoals verwacht werden er geen directories gekopieerd. Daarna heb ik stap voor stap  het excludeFile kleiner gemaakt en gestest met dry runs. Ging allemaal goed.

Uiteindelijk had ik de excludeFile zoals ik hem hebben wil en de dry run ging goed. Toen voor het echie.
Dat leek niet goed te gaan. Het leek alsof de backup ergens bleef hangen. Door goed te kijken naar de output zag ik dat dit bij het bestand ".xsession-errors".  En dit bestand was 15Gb groot. Deze heb ik weer teruggezet in de excludeFile en volgens mij gaat het nu wel goed.
De backup draait momenteel. In totaal is het toch ongeveer 650Gb dat gekopieerd moet worden dus daar gaat wel wat tijd overeen.
Daarna de source en target maar even goed kontroleren.

Offline peer

  • Lid
  • Steunpunt: Nee
Re: rsync meerdere directories uitsluiten
« Reactie #10 Gepost op: 2020/04/26, 09:47:03 »
Inmiddels heb ik een scriptje gemaakt met de volgende eigenschappen:
1. start automatisch op als ik de pc start ( autostart in settings van kde)
2. er wordt een icon getoond in de system tray
3. ik krijg een melding als de backup klaar is
Hier is het script:
#!/bin/bash

# wachttijd is 60 seconden
wait=60 ##standaard


# stel pad, excldeFile en logFile in
pad="/home/peer/Scripts/backup/"

excludeFile="$pad""excludeHome.txt"
logFile="$pad""backupHome.log"

touch $logFile
echo "BackupHome logFile" > $logFile
echo "$(date)" >> $logFile
echo "" >> $logFile



sleep $wait #wachttijd
yad --notification --image="android-studio" --command="clicked=true'" & # icon in system tray aanzetten

rsync -avz --exclude-from=$excludeFile /home/peer/ /media/Backup/peer/ >> $logFile #backup proces

pkill yad #icon in system tray uitzetten


/usr/bin/notify-send "Backup Home Finished" # melding backup klaar

ik wil nog de volgende verbeteringen aanbrengen:
1. de -z optie verwijderen (compress tijdens backup). Lijkt mij een overbodige en vertagende optie omdat ik een lokale backup maak.
2. De pkill yad opdracht wil ik scherper maken. Bij het starten van yad opdracht wil ik het PID opvangen in een variabele zodat ik later het proces heel gericht kan afsluiten. Nu is het mogelijk dat er een andere yad proces draait en dat dat dat afgesloten wordt.

Offline peer

  • Lid
  • Steunpunt: Nee
Re: rsync meerdere directories uitsluiten
« Reactie #11 Gepost op: 2020/05/01, 10:21:45 »
het werken met rsync vind ik niet eenvoudig. Hierboven is het me gelukt om een backup op te zetten met de op "--exclude-from=FILE". Het uitsluiten van directories en files is daarmee goed te doen. Ik gebruik altijd de optie -a  (archive) en de optie -v (verbose)

Ik heb ook de optie "--include-from=FILE". Het lukt me echter (nog) niet om hiermee een goed werkende backup op te zetten

De derde optie die ik geprobeerd heb is "--files-from=FILE".  Hiermee lukte het me na wat proberen om een werkende backup op te zetten. In eerste instantie werden files en directories gekopieerd maar subdirectories niet. De recursieve optie zit in de optie -a maar blijkt niet goed samen te werken met "--files-from=FILE". Door de optie -r toe te voegen kreeg ik een werkende backup. 
Maar er is wel een probleem met directories of files met een spatie in de naam zoals bv "VirtualBox VMs".  Ik heb in de FILE de volgende varianten allemaal geprobeerd: enkele aanhalingstekens, dubbele aanhalingstekens, escape met \, wildcard ? en wildcard *.   Bij alle mogelijkheden heb ik de foutmelding "pad niet gevonden" gekregen. Uiteindelijk heb ik de directory zelf aangepast (spatie verwijderd en natuurlijk virtualbox hierop aangepast). Hiernaar werkt de backup prima. Het grappige is dat in het backupproces directories/files-namen met spaties erin gewoon goed gekopieerd worden.