Skip to content

Instantly share code, notes, and snippets.

@n-at
Created May 8, 2015 08:38
Show Gist options
  • Save n-at/121083995ebc33e56086 to your computer and use it in GitHub Desktop.
Save n-at/121083995ebc33e56086 to your computer and use it in GitHub Desktop.
ONLYOFFICE backup & restore
#!/bin/bash
CONTAINER_NAME="onlyoffice_communityserver_1"
ONLYOFFICE_HOME="/var/www/onlyoffice"
ONLYOFFICE_DATA="$ONLYOFFICE_HOME/server_data"
ONLYOFFICE_BACKUP="$ONLYOFFICE_HOME/server_backup"
DATE=`date +%F-%H-%M-%S`
cd "$ONLYOFFICE_BACKUP"
#backup database
docker exec $CONTAINER_NAME mysqldump -h localhost onlyoffice > $DATE.sql
tar -czf $DATE.tar.gz $DATE.sql
rm $DATE.sql
#backup data
cd "$ONLYOFFICE_DATA"
tar -czf "$ONLYOFFICE_BACKUP/files-$DATE.tar.gz" *
#save latest date
echo "$DATE" > "$ONLYOFFICE_BACKUP/LATEST"
#!/bin/bash
CONTAINER_NAME="onlyoffice_communityserver_1"
ONLYOFFICE_HOME="/var/www/onlyoffice"
CONTAINER_DATA_STORAGE="/var/www/onlyoffice/Data"
ONLYOFFICE_DATA="$ONLYOFFICE_HOME/server_data"
ONLYOFFICE_BACKUP="$ONLYOFFICE_HOME/server_backup"
DATE="$1"
if [[ -z "$DATE" ]]; then
if [[ -e "$ONLYOFFICE_BACKUP/LATEST" ]]; then
DATE=`cat "$ONLYOFFICE_BACKUP/LATEST"`
else
echo "Usage: restore.sh <date>"
exit -1
fi
fi
echo "Restoring ONLYOFFICE backup for $DATE..."
SQL_ARCHIVE="$ONLYOFFICE_BACKUP/$DATE.tar.gz"
DATA_ARCHIVE="$ONLYOFFICE_BACKUP/files-$DATE.tar.gz"
SQL_FILE="$DATE.sql"
if [[ -e "$SQL_ARCHIVE" ]]; then
echo "SQL archive \"$SQL_ARCHIVE\" found"
else
echo "SQL archive \"$SQL_ARCHIVE\" not found! Aborting..."
exit -1
fi
if [[ -e "$DATA_ARCHIVE" ]]; then
echo "Data archive \"$DATA_ARCHIVE\" found"
else
echo "Data archive \"$DATA_ARCHIVE\" not found! Aborting..."
exit -1
fi
echo "Stopping ONLYOFFICE..."
docker exec $CONTAINER_NAME service monoserve stop
echo "Restoring sql..."
cd $ONLYOFFICE_BACKUP
tar -xf $SQL_ARCHIVE
docker exec -i $CONTAINER_NAME mysql onlyoffice < $SQL_FILE
rm $SQL_FILE
echo "Restoring data..."
cd $ONLYOFFICE_DATA
rm -R *
tar -xf $DATA_ARCHIVE
docker exec $CONTAINER_NAME chmod -R 755 $CONTAINER_DATA_STORAGE
docker exec $CONTAINER_NAME chown -R onlyoffice:onlyoffice $CONTAINER_DATA_STORAGE
echo "Starting ONLYOFFICE..."
docker exec $CONTAINER_NAME service monoserve start
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment