| @@ -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 | |
jblu / seafile-backup.sh
Last active 6 months ago