Nieuws:

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

Auteur Topic: Krijg cronjob niet aan de praat  (gelezen 1925 keer)

Offline moxie

  • Lid
    • JackTummers
Krijg cronjob niet aan de praat
« Gepost op: 2014/09/09, 20:05:18 »
Ik probeer een aantal backups via rsync in te stellen met cron, maar ze willen maar niet van start gaan.

Ik gebruik dit commando voor rsync en heb het als zodanig via sudo crontab -e toegevoegd:

00 19 * * * rsync -aurvt --delete --exclude=/.Trash-1000/ --exclude=/lost+found/  /media/Archief01/ /media/jack/Archief01A

Ik dacht eerst dat misschien de tijd niet overeenkwam met de systeem zoals ik kan zien, onder ander via het commando date, maar ik heb ook al het uur 19 vervangen door * (ieder uur) en ook de minuten heb ik al aangepast. Wat doe ik nog fout?

Ik heb overigens ook dit geprobeerd via een sh script volgens deze aanwijzingen, maar ook dat werkte niet: http://www.evbackup.com/support-rsync-scripting-automation/

JackTummers.nl

Offline moxie

  • Lid
    • JackTummers
Re: Krijg cronjob niet aan de praat
« Reactie #1 Gepost op: 2014/09/09, 21:04:58 »
Ik geloof dat het nu werkt. Blijkbaar zat er een fout in de exlude regels van rsync.
JackTummers.nl

Re: Krijg cronjob niet aan de praat
« Reactie #2 Gepost op: 2014/09/09, 21:56:01 »
Hallo, volgens mij moeten die --exclude-regels van aanhalingstekens worden voorzien:--exclude="/.Trash-1000"

Offline moxie

  • Lid
    • JackTummers
Re: Krijg cronjob niet aan de praat
« Reactie #3 Gepost op: 2014/09/10, 08:47:06 »
Dat is een goeie vraag! Ik wist het ook niet zeker maar kreeg zonder sudo een paar foutmeldingen dat sommige mappen of bestanden niet konden worden benaderd.
Ik wil dus behalve gewone bestanden ook mijn /home backuppen, inclusief dus alle verborgen bestanden en dus alle (programma)instellingen. Worden die ook meegenomen in een backup in cron zonder sudo?

En dan natuurlijk nog de vraag of ik dit nog kan veranderen. Als ik vanaf nu de backups via de gebruiker laten lopen in cron, geeft dat geen problemen met bestaande backups?

ps. ik heb zelf trouwens een TDM ;)
JackTummers.nl

Offline moxie

  • Lid
    • JackTummers
Re: Krijg cronjob niet aan de praat
« Reactie #4 Gepost op: 2014/09/10, 20:44:36 »
Ik ga je tips eens doornemen :) bedankt. En zal van onderstaand -ax maken als dat net zo goed is.

En nu werkt mijn backup opeens niet meer. Kan het zijn dat ik iedere regel in mijn sh bestand moet afsluiten ofzo?

Ik heb nu dit:

#!/bin/sh
rsync -aurvt --delete --exclude=.gvfs  /home/ /media/Data/BackupHome
rsync -aurvt --delete /media/Data/ /media/jack/DataBackup
rsync -aurvt --delete /media/Archief01/ /media/jack/Archief01A
rsync -aurvt --delete /media/Archief02/ /media/jack/Archief02A
JackTummers.nl

Offline Moob

  • Lid
Re: Krijg cronjob niet aan de praat
« Reactie #5 Gepost op: 2014/09/10, 21:24:50 »
Installeer anders eens Grsync. Dit is een GUI om rsync heen, kan je heel makelijk het een en ander testen.

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Re: Krijg cronjob niet aan de praat
« Reactie #6 Gepost op: 2014/09/11, 09:25:45 »
In een cronjob moet je er ook rekening mee houden dat de PATH variabele niet altijd gedefinieerd is.
Gebruik dus altijd de volledige paden naar commando's.
Dus "/usr/bin/rsync enz" in plaats van "rsync enz".

Offline moxie

  • Lid
    • JackTummers
Re: Krijg cronjob niet aan de praat
« Reactie #7 Gepost op: 2014/09/11, 10:01:00 »
Het pad in cron dat ik nu gebruik is dit:

35 20 * * * /home/Backups/backups.sh

Lijkt me goed toch?
JackTummers.nl

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Re: Krijg cronjob niet aan de praat
« Reactie #8 Gepost op: 2014/09/11, 10:20:53 »
Dat is goed, maar je moet binnen dat script ook de absolute paden zetten :)

Offline moxie

  • Lid
    • JackTummers
Re: Krijg cronjob niet aan de praat
« Reactie #9 Gepost op: 2014/09/13, 21:32:22 »
Nog één vraagje dan... Hoe kan ik de uitvoer zien van een cronjob met rsync commando's?
Ik vind het namelijk wel fijn om even wat regels in de terminal voorbij te zien vliegen zodat ik zeker weet dat alles goed gaat.
JackTummers.nl

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Re: Krijg cronjob niet aan de praat
« Reactie #10 Gepost op: 2014/09/13, 21:42:06 »
Je zou de uitvoer van je script naar een logfile kunnen redirecten

35 20 * * * /home/Backups/backups.sh > /var/log/backups.log
Zorg ervoor dat het bestand bestaat en dat je rechten hebt om hem te beschrijven.

Je zou ook nog binnen je script de std err via een pipe naar het logger commando kunnen sturen.

Offline moxie

  • Lid
    • JackTummers
Re: Krijg cronjob niet aan de praat
« Reactie #11 Gepost op: 2014/09/13, 21:53:01 »
Dat laatste ben ik niet bekend mee, maar ik ga dat eerste eens proberen.
Werkt het trouwens zo dat als ik mijn huidige 4 rsync regels via cron laat uitvoeren deze automatisch als root worden uitgevoerd? Ik heb er namelijk niet nog eens sudo voorgezet.
Ik gebruik hier sudo crontab -e voor.
JackTummers.nl

Re: Krijg cronjob niet aan de praat
« Reactie #12 Gepost op: 2014/09/13, 21:58:07 »
Nog één vraagje dan... Hoe kan ik de uitvoer zien van een cronjob met rsync commando's?
voeg na rsync de -v optie toe, van verbose. In de terminal zie je dan precies wat er gebeurt. Of dat ook zo is met cron weet ik niet.

Edit. Ik zie nu dat je die -v al hebt geactiveerd, dus misschien moet de uitvoer mogelijk inderdaad redirecten zoals Johan schreef.
« Laatst bewerkt op: 2014/09/13, 22:00:02 door Paul Matthijsse »

Offline moxie

  • Lid
    • JackTummers
Re: Krijg cronjob niet aan de praat
« Reactie #13 Gepost op: 2014/09/13, 22:02:37 »
Ja, die -v werkte leuk als ik rsync meteen in de terminal uitvoerde, maar nu ik aan het proberen ben via cron automatisch iedere dag 4 soorten backup te laten lopen zie ik niks meer gebeuren op mijn scherm, en ik zou op zijn minst toch een popupje of iets willen zien met wat er gebeurd.
JackTummers.nl

Offline MKe

  • Lid
Re: Krijg cronjob niet aan de praat
« Reactie #14 Gepost op: 2014/09/13, 22:20:04 »
De redirect naar een logbestand zoals Johan aangeeft is de standaard manier. Beter nog is het om het met een dubbele '>>' te doen, dan wordt het log van de vorige keer niet overschreven. Je kunt altijd in het logbestand zien dat er wat gebeurt.
Cron runt de commando's in een eigen, onzichtbare shell. Dat zie je dus niet terug op een schermpje.

Offline moxie

  • Lid
    • JackTummers
Re: Krijg cronjob niet aan de praat
« Reactie #15 Gepost op: 2014/09/13, 22:23:07 »
Ok. En wat die sudo betreft?

Werkt het trouwens zo dat als ik mijn huidige 4 rsync regels via cron laat uitvoeren deze automatisch als root worden uitgevoerd? Ik heb er namelijk niet nog eens sudo voorgezet.
Ik gebruik hier sudo crontab -e voor.
JackTummers.nl

Offline MKe

  • Lid
Re: Krijg cronjob niet aan de praat
« Reactie #16 Gepost op: 2014/09/14, 09:55:54 »
Iedere gebruiker heeft zijn eigen cron. Je kunt dus taken laten uitvoeren door je eigen user, maar als je sudo crontab -e uitvoert krijg je een andere lijst met taken. De taken die je hier in zet worden als root uitgevoerd.

Het simpele antwoord is dus als je sudo crontab -e hebt gebruikt, dat je taak dus als root wordt uitgevoerd.
« Laatst bewerkt op: 2014/09/14, 10:03:53 door MKe »
Mijn blokkendoos blog: http://mke21.wordpress.com/

Offline jan11000

  • Lid
Re: Krijg cronjob niet aan de praat
« Reactie #17 Gepost op: 2014/09/14, 10:25:58 »
Dit in je tekst zetten,
#!/bin/bash
Dus in plaats wat jij hebt, of dit moet weet ik niet, maar dit gebruikte ik altijd.

Je hebt nu meerdere regels die direct starten, door ; achter elke regel te zetten, dan start de volgende pas als de eerte klaar is.
Met sleep 10 nog als regel ertussen te voegen, dan heb je een kleine pauze tussen de stappen.
Met echo "ready" kun je nog tekst laten zien, tekst kun je wijzigen, dan kun je ook zien dat je programma loopt.

Voorbeeld wat ik gebruik, na het opstarten van het systeem, gaat dit starten, even wacht de bash, dan start deze, met pauzes ertussen, en de bash wordt 1 voor 1 gedaan, dus niet samen, ik zie dit ook aflopen in de terminal scherm die tevoorschijn komt, want anders weet je niet op deze bash gelopen heeft, en voor een backup is het wel belangrijk dat je weet dat dit gelopen heeft.
Hier maak een copie van bepaalde mappen bij opstarten, je kunt ook een knop maken en aan je sh verbinden.
#!/bin/bash
echo "wait ............................................."
echo "wait ............................................."
echo "wait ............................................."
echo "wait ............................................."
sleep 10
rsync -r -t -v --progress --delete -b -s /home/jan/.mozilla /home/jan/2/backup/firefoxmap ;
echo "ready 1111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111" ;
rsync -r -t -v --progress -c -b -s /home/jan/.thunderbird /home/jan/2/backup/emailmap ;
echo "ready 2222222222222222222222222222222222222222222
22222222222222222222222222222222222222222222222222222222
22222222222222222222222222222222222222222222222222222222" ;
rsync -r -t -v --progress --delete --ignore-existing -b -s /home/jan/1/download /home/jan/2/backup/downloadmap ;
echo "ready 3333333333333333333333333333333333333333333
33333333333333333333333333333333333333333333333333333333
33333333333333333333333333333333333333333333333333333333" ;
echo "Ready"
echo "wait ............................................."
sleep 10


« Laatst bewerkt op: 2014/09/14, 10:28:05 door jan11000 »

Offline moxie

  • Lid
    • JackTummers
Re: Krijg cronjob niet aan de praat
« Reactie #18 Gepost op: 2014/09/14, 11:30:19 »
Zien er goed uit doe regeltjes ;)

Ik heb er nu dit van gemaakt in mijn backups.sh

#!/bin/sh
echo "Start van backup Home folder naar Data/Backup";
rsync -aurvt --progress --delete --exclude=/home/jack/.gvfs  /home/jack/ /media/jack/Data/BackupHome ;
echo "Einde eerste backup ---------------------------------------------------------";
sleep 5;

echo "Start van backup Data folder naar DataBackup op Mobius";
rsync -aurvt --progress --delete --exclude=/media/jack/Data/Downloads/ /media/jack/Data/ /media/jack/DataBackup ;
echo "Einde tweede backup ---------------------------------------------------------";
sleep 5;

echo "Start van backup Archief01 naar Archief01A op Mobius";
rsync -aurvt --progress --delete --exclude=/media/jack/Archief01/.Trash-1000 --exclude=/media/jack/Archief01/lost+found /media/jack/Archief01/ /media/jack/Archief01A ;
echo "Einde derde backup ---------------------------------------------------------";
sleep 5;

echo "Start van backup Archief02 naar Archief02A op Mobius";
rsync -aurvt --progress --delete --exclude=/media/jack/Archief02/.Trash-1000 --exclude=/media/jack/Archief02/lost+found /media/jack/Archief02/ /media/jack/Archief02A ;
echo "Einde vierde backup ---------------------------------------------------------";
echo "Klaar met backuppen ---------------------------------------------------------";

Alleen is me niet duidelijk hoe jij dan ziet wat er gaande is. De terminal opent niet ofzo, dus ik zie alleen maar de lichtjes van de harddisks oplichten.
Heb jij inderdaad > /var/log/backups.log achter je cron-regel gezet?

JackTummers.nl

Offline moxie

  • Lid
    • JackTummers
Re: Krijg cronjob niet aan de praat
« Reactie #19 Gepost op: 2014/09/14, 15:19:14 »
Iets klopt er nog niet in wat ik probeer te doen.
In eerste instantie werkte de exclude van de downloadsmap niet, dus die werd 'netjes' gebackupt, wat ik dus eigenlijk niet wilde.

Toen ben ik gaan kijken naar de juiste formulering en denk die te hebben (zie onderstaande regels), alleen werd de downloadsmap op de target schijf niet gewist en heb ik dit uiteindelijk handmatig moeten doen. Ik dacht dat alles wat op de doelschijf staat automatisch gewist zou worden wat niet op de bronschijf staat. Toch?

#!/bin/sh
echo "Start van backup Home folder naar Data/Backup" ;
rsync -aurvt --delete --exclude '.gvfs' --exclude '.local/share/Trash'  /home/jack/ /media/jack/Data/BackupHome ;
echo "Einde eerste backup ---------------------------------------------------------" ;

echo "Start van backup Data folder naar DataBackup op Mobius" ;
rsync -aurvt --delete --exclude 'Downloads' /media/jack/Data/ /media/jack/DataBackup ;
echo "Einde tweede backup ---------------------------------------------------------" ;

echo "Start van backup Archief01 naar Archief01A op Mobius" ;
rsync -aurvt --delete --exclude '.Trash-1000' --exclude 'lost+found' /media/jack/Archief01/ /media/jack/Archief01A ;
echo "Einde derde backup ---------------------------------------------------------" ;

echo "Start van backup Archief02 naar Archief02A op Mobius" ;
rsync -aurvt --delete --exclude '.Trash-1000' --exclude 'lost+found' /media/jack/Archief02/ /media/jack/Archief02A ;
echo "Einde vierde backup ---------------------------------------------------------" ;
echo "Klaar met backuppen ---------------------------------------------------------" ;
JackTummers.nl

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Re: Krijg cronjob niet aan de praat
« Reactie #20 Gepost op: 2014/09/14, 16:30:35 »
Een cronjob laat nooit wat op je scherm zien. Dat zou ook wel raar zijn omdat sommige iedere paar minuten lopen. Dan zou je niet meer normaal kunnen werken zonder continu gestoord te worden door popups.

Als je wil weten wat een cronjob doet dan moet je de logbestanden bekijken.