Nieuws:

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

Auteur Topic: Backup script  (gelezen 2843 keer)

Offline Scormen

  • Lid
    • LinuxOntdekt.Be
Backup script
« Gepost op: 2008/06/17, 14:31:33 »
Hoi allen,

Ik heb me even beziggehouden met het verbeteren van men twee voorgaande "backup scripts" - als je het zo kan noemen.
- http://www.linuxontdekt.be/2007/12/16/volledige-backup-nemen-dmv-een-crontab/
- http://www.linuxontdekt.be/2007/11/16/automatisch-een-tar-backup-maken-dmv-een-crontab/

Ik heb de twee bovenstaande herschreven waaruit dit is ontstaan.
Linkje om te downloaden:
http://www.linuxontdekt.be/wp-content/uploads/2008/06/backup.sh

Het script:

#!/bin/bash


###################################### - NOTAS - #######################################
#                                                                                      #
#  Eerst wordt gecontroleerd of de benodigde directories bestaan                       #
#  Vervolgens worden de oude backups verwijderd                                        #
#  De backup van vorige week word naar een .tar.gz bestand gekopieërd                  #
#  De laatstee status van de PC wordt gesynchroniseerd met de backup van vorige week   #
#  Om te vinden wat eventueel fout is gegaan worden de systeemlogs eveneens gebackupt  #
#                                                                                      #
#  Dient uitgevoerd te worden als Super User (su) om de logs mee te kunnen backuppen   #
#  De backups moeten iedere week op dezelfde dag genomen worden!                       #
#  B.V.: 01 00 * * 6 /home/je-gebruikersnaam/backup.sh                                 #
#                                                                                      #
#    Kris Lowet  -  www.linuxontdekt.be                                                #
#                                                                                      #
########################################################################################


# Variablen
BACKUP="/home/kris/"                          # Wat gebackupt moet worden
EXTHDD="/media/disk-1/backups_kris"           # Medium om de backups op te plaatsen, zonder afsluitende "/"
VORIGE=`date --date='1 week ago' +%Y-%m-%d`   # 1 week geleden
AANTAL="7"                                    # .tar.gz bestanden ouder dan zoveel dagen verwijderen uit map "oud" (7 = 1 week)


   #####################################################
   ### - Hieronder hoeft niets aangepast te worden - ###
   #####################################################


# Controleren of de benodigde mappen bestaan, anders aanmaken
if [ ! -d ${EXTHDD}/laatste ]; then
     mkdir ${EXTHDD}/laatste
fi

if [ ! -d ${EXTHDD}/oud ]; then
     mkdir ${EXTHDD}/oud
fi

if [ ! -d ${EXTHDD}/logs ]; then
     mkdir ${EXTHDD}/logs
fi

if [ ! -d ${EXTHDD}/Backuplogs ]; then
     mkdir ${EXTHDD}/Backuplogs
fi


# De voorgaande backups verwijderen om plaats te maken
find ${EXTHDD}/oud/ -name \* -mtime +${AANTAL} -exec rm -R {} \;


# Backups van vorige week tarren en oversluizen naar de oude map
tar cfzC ${EXTHDD}/oud/${VORIGE}.tar.gz ${EXTHDD}/laatste/ .


# Logbestand aanmaken en begindatum toevoegen
date > ${EXTHDD}/Backuplogs/$(date +%Y-%m-%d).log


# De eigenlijke data backuppen
rsync -rlptgoDzE --delete-after ${BACKUP} ${EXTHDD}/laatste


# Het logbestand aanvullen zodat je weet welke bestanden er gebackupt zijn
# R = submappen inclusief, h = in Bytes en KB's, l = rechten en datum enz. weergeven, A = ook verborgen bestanden
ls -R -h -l -A ${EXTHDD}/laatste >> ${EXTHDD}/Backuplogs/$(date +%Y-%m-%d).log


# Systeem logs backuppen
rsync -rlptgoDzE --delete-after /var/log/ ${EXTHDD}/logs


# Einddatum invoegen in het logbestand
date >> ${EXTHDD}/Backuplogs/$(date +%Y-%m-%d).log
Nu, wat zouden jullie anders doen, wat kan er verbeterd worden?

Alvast bedankt,
Kris
Ubuntu gebruiker #18341 | Linux gebruiker #456955
· Mijn persoonlijke Linux blog

mynamewastaken

  • Gast
Backup script
« Reactie #1 Gepost op: 2008/06/25, 14:41:15 »
Deze stuk:
if [ ! -d ${EXTHDD}/laatste ]; then
     mkdir ${EXTHDD}/laatste
fi

if [ ! -d ${EXTHDD}/oud ]; then
     mkdir ${EXTHDD}/oud
fi

if [ ! -d ${EXTHDD}/logs ]; then
     mkdir ${EXTHDD}/logs
fi

if [ ! -d ${EXTHDD}/Backuplogs ]; then
     mkdir ${EXTHDD}/Backuplogs
fi
Mischien kan u zo iets doen:

mkdir -p ${EXTHDD}/{laatste,oud,logs,Backuplogs}De "-p" vlag van mkdir probeert het map te maken, maar als het al bestaat, dan doet het niks.

Ik ben nog steeds aan het lezen, ik zal wel meer dingen zegen als ik ze zien.
ps: Sorry voor mijn slechte Nederlands :)

Offline Scormen

  • Lid
    • LinuxOntdekt.Be
Backup script
« Reactie #2 Gepost op: 2008/06/25, 22:13:35 »
Aha inderdaad ja, dat is korter :) Bedankt!
Zo leren we ook weer wat extra opties bij! ;)

En je Nederlands is goed hoor, we verstaan elkaar.

Groetjes,
Kris
Ubuntu gebruiker #18341 | Linux gebruiker #456955
· Mijn persoonlijke Linux blog