backup des owncloud adressbuches per cron

hier ein kleines script, um vom owncloud adressbuch eines users ein backup zu erstellen. bei einer selbst gehosteten owncloud macht man normalerweise ein mysql backup und hat damit auch gleich das adressbuch gesichert. wenn man allerdings keinen shellzugriff hat, kann man sich mit diesem kleinen script behelfen, welches die exportfunktion von owncloud nutzt. gerade wenn man noch im “testbetrieb” ist und mit zig geraeten (mit durchaus unterschiedlichem verhalten) gleichzeitig auf das adressbuch zugreift, will man vielleicht auch mal ein solches backup haben – fuer den fall, dass doch etwas schief geht. gebraucht habe ich das bis jetzt noch nicht, aber wer weiss…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/bash
 
OCUSER=meinusername
OCPASS=meinpasswort
OCHOST=https://owncloud.domain.tld
# die "bookid" am ende anpassen!
OCABOOKURL=$OCHOST'/index.php/apps/contacts/export.php?bookid=2'
 
# das "--no-check-certificate" ist unschoen
WGETPARAMS='--no-check-certificate --auth-no-challenge'
WGETAUTH='--http-user='$OCUSER' --http-password='$OCPASS
MYDATE=`date +%Y%m%d%H%M%S`
# in diesen ordner werden die backups abgelegt
OUTFOLDER=/home/ich/ocbackup
OUTFILE=$OUTFOLDER'/abook_'$OCUSER'_'$MYDATE'.vcf'
 
wget $WGETPARAMS $WGETAUTH -O $OUTFILE $OCABOOKURL
# packen und das original loeschen
gzip $OUTFILE
 
# backups aelter 30 tage loeschen
find $OUTFOLDER -maxdepth 1 -type d -name 'abook*' -mtime +30 -exec rm -rf {} \;

20130628_ocexportdie url bzw speziell die “bookid” muss man sich in seinem owncloud account raussuchen. dazu geht man im adressbuch in die einstellungen und kopiert sich die export url mit der rechten maustaste und passt das script an:

das “find” am ende loescht die backupdateien, die aelter als 30 tage sind. das script speichert man sich ab, macht es ausfuehrbar und fuehrt es so oft wie es beliebt per crojob aus.

(stand: ownCloud 5.0.7)

28. June 2013 by sd
Categories: Uncategorized | Tags: , , | Leave a comment

Leave a Reply

Required fields are marked *