58 lines
2.0 KiB
Bash
58 lines
2.0 KiB
Bash
#!/bin/sh
|
|
|
|
# Variables
|
|
DATE=`date +%F`
|
|
TIME=`date +%H%M`
|
|
BACKUPDIR=/backup
|
|
# /shared/seafile in seafile container
|
|
SEAFDIR=/seafile
|
|
BACKUPFILE=$BACKUPDIR/seafile-$DATE-$TIME.tar
|
|
TEMPDIR=/tmp/seafile-$DATE-$TIME
|
|
BACKUPDATADIR=/backupdata
|
|
# Shutdown seafile
|
|
docker exec $seafilecontainer /opt/seafile/seafile-server-latest/seahub.sh stop
|
|
docker exec $seafilecontainer /opt/seafile/seafile-server-latest/seafile.sh stop
|
|
|
|
# Create directories
|
|
if [ ! -d $BACKUPDIR ]
|
|
then
|
|
echo Creating Backupdirectory $BACKUPDIR...
|
|
mkdir -pm 0600 $BACKUPDIR
|
|
fi
|
|
if [ ! -d $TEMPDIR ]
|
|
then
|
|
echo Create temporary directory $TEMPDIR...
|
|
mkdir -pm 0600 $TEMPDIR
|
|
mkdir -m 0600 $TEMPDIR/databases
|
|
fi
|
|
|
|
# Dump data / copy data
|
|
echo Dumping ccnet database...
|
|
mysqldump -h $mysqlhost -u $mysqlusername -p $mysqlpassword --skip-opt ccnet-db > $TEMPDIR/databases/ccnet-db.sql.`date +"%Y-%m-%d-%H-%M-%S"`
|
|
if [ -e $TEMPDIR/databases/ccnet-db.sql.* ]; then echo ok.; else echo ERROR.; fi
|
|
echo Dumping SeaFile database...
|
|
mysqldump -h $mysqlhost -u $mysqlusername -p $mysqlpassword --skip-opt seafile-db > $TEMPDIR/databases/seafile-db.sql.`date +"%Y-%m-%d-%H-%M-%S"`
|
|
if [ -e $TEMPDIR/databases/seafile-db.sql.* ]; then echo ok.; else echo ERROR.; fi
|
|
echo Dumping SeaHub database...
|
|
mysqldump -h $mysqlhost -u $mysqlusername -p $mysqlpassword --skip-opt seahub-db > $TEMPDIR/databases/seahub-db.sql.`date +"%Y-%m-%d-%H-%M-%S"`
|
|
if [ -e $TEMPDIR/databases/seahub-db.sql.* ]; then echo ok.; else echo ERROR.; fi
|
|
|
|
echo Copying seafile directory...
|
|
rclone sync $SEAFDIR/* $BACKUPDATADIR
|
|
if [ -d $TEMPDIR/data/seafile-data ]; then echo ok.; else echo ERROR.; fi
|
|
|
|
# Start the server
|
|
docker exec $seafilecontainer /opt/seafile/seafile-server-latest/seafile.sh start
|
|
docker exec $seafilecontainer /opt/seafile/seafile-server-latest/seahub.sh start
|
|
|
|
# compress data
|
|
echo Archive the backup...
|
|
cd $TEMPDIR
|
|
tar -cf $BACKUPFILE *
|
|
gzip $BACKUPFILE
|
|
if [ -e $BACKUPFILE.gz ]; then echo ok.; else echo ERROR.; fi
|
|
|
|
# Cleanup
|
|
echo Deleting temporary files...
|
|
rm -Rf $TEMPDIR
|
|
if [ ! -d $TEMPDIR ]; then echo ok.; else echo ERROR.; fi |