jblu

jblu / seafile-backup.sh

Last active 6 months ago

Like 0

jblu revised this gist 2 years ago · a4f7715

1 file changed, 61 insertions

seafile-backup.sh (file created)
@@ -0,0 +1,61 @@
1 + #!/bin/bash
2 +
3 + # Variables
4 + DATE=`date +%F`
5 + TIME=`date +%H%M`
6 + BACKUPDIR=/backup
7 + SEAFDIR=/home/sea
8 + BACKUPFILE=$BACKUPDIR/seafile-$DATE-$TIME.tar
9 + TEMPDIR=/tmp/seafile-$DATE-$TIME
10 +
11 + # Shutdown seafile
12 + $SEAFDIR/seafile-server-latest/seahub.sh stop
13 + $SEAFDIR/seafile-server-latest/seafile.sh stop
14 +
15 + # Create directories
16 + if [ ! -d $BACKUPDIR ]
17 + then
18 + echo Creating Backupdirectory $BACKUPDIR...
19 + mkdir -pm 0600 $BACKUPDIR
20 + fi
21 + if [ ! -d $TEMPDIR ]
22 + then
23 + echo Create temporary directory $TEMPDIR...
24 + mkdir -pm 0600 $TEMPDIR
25 + mkdir -m 0600 $TEMPDIR/databases
26 + mkdir -m 0600 $TEMPDIR/data
27 + fi
28 +
29 + # Dump data / copy data
30 + echo Dumping GroupMgr database...
31 + sqlite3 $SEAFDIR/ccnet/GroupMgr/groupmgr.db .dump > $TEMPDIR/databases/groupmgr.db.bak
32 + if [ -e $TEMPDIR/databases/groupmgr.db.bak ]; then echo ok.; else echo ERROR.; fi
33 + echo Dumping UserMgr database...
34 + sqlite3 $SEAFDIR/ccnet/PeerMgr/usermgr.db .dump > $TEMPDIR/databases/usermgr.db.bak
35 + if [ -e $TEMPDIR/databases/usermgr.db.bak ]; then echo ok.; else echo ERROR.; fi
36 + echo Dumping SeaFile database...
37 + sqlite3 $SEAFDIR/seafile-data/seafile.sb .dump > $TEMPDIR/databases/seafile.db.bak
38 + if [ -e $TEMPDIR/databases/seafile.db.bak ]; then echo ok.; else echo ERROR.; fi
39 + echo Dumping SeaHub database...
40 + sqlite3 $SEAFDIR/seahub.db .dump > $TEMPDIR/databases/seahub.db.bak
41 + if [ -e $TEMPDIR/databases/seahub.db.bak ]; then echo ok.; else echo ERROR.; fi
42 +
43 + echo Copying seafile directory...
44 + rsync -az $SEAFDIR/* $TEMPDIR/data
45 + if [ -d $TEMPDIR/data/seafile-data ]; then echo ok.; else echo ERROR.; fi
46 +
47 + # Start the server
48 + $SEAFDIR/seafile-server-latest/seafile.sh start
49 + $SEAFDIR/seafile-server-latest/seahub.sh start-fastcgi
50 +
51 + # compress data
52 + echo Archive the backup...
53 + cd $TEMPDIR
54 + tar -cf $BACKUPFILE *
55 + gzip $BACKUPFILE
56 + if [ -e $BACKUPFILE.gz ]; then echo ok.; else echo ERROR.; fi
57 +
58 + # Cleanup
59 + echo Deleting temporary files...
60 + rm -Rf $TEMPDIR
61 + if [ ! -d $TEMPDIR ]; then echo ok.; else echo ERROR.; fi