Skip to content
Snippets Groups Projects
Commit dddc45fd authored by Jan Mach's avatar Jan Mach
Browse files

Implemented prototype script for creating snapshots for development purposes.

(Redmine issue: #7041)
parent fcc47302
No related branches found
No related tags found
No related merge requests found
#!/bin/bash
#-------------------------------------------------------------------------------
# This file is part of Mentat system (https://mentat.cesnet.cz/).
#
# Copyright (C) since 2011 CESNET, z.s.p.o (http://www.ces.net/)
# Use of this source is governed by the MIT license, see LICENSE file.
#-------------------------------------------------------------------------------
# Check exit status of any command and fail on error
set -e
# Source global configurations
. /etc/default/mentat
BACKUP_DIR=/var/mentat/devsnapshot/main
BACKUP_DATE_FROM=`date --date="8 days ago" --iso-8601=seconds`
mkdir -p $BACKUP_DIR
chown mentat:mentat $BACKUP_DIR
cd $BACKUP_DIR
sudo -u mentat pg_dump --clean --create --if-exists --format=d --jobs=3 --dbname=mentat_main --username=mentat --no-password --exclude-table=reports_events --exclude-table=statistics_events --exclude-table=changelogs_items --file=$BACKUP_DIR
for table_name in reports_events statistics_events changelogs_items
do
sudo -u mentat psql mentat_main -c "copy (select * from ${table_name} where createtime >= '${BACKUP_DATE_FROM}'::timestamptz) to stdout" > /var/mentat/devsnapshot/main/${table_name}.dat
sudo -u mentat gzip /var/mentat/devsnapshot/main/${table_name}.dat
done
BACKUP_DIR=/var/mentat/devsnapshot/events
mkdir -p $BACKUP_DIR
chown mentat:mentat $BACKUP_DIR
cd $BACKUP_DIR
sudo -u mentat psql mentat_events -c "copy (select * from events where storagetime >= '${BACKUP_DATE_FROM}'::timestamptz;) to stdout" > /var/mentat/devsnapshot/main/events.dat
sudo -u mentat gzip /var/mentat/devsnapshot/main/events.dat
sudo -u mentat psql mentat_events -c "copy (select events_json.* from events_json join events on events_json.id = events.id where events.storagetime >= '${BACKUP_DATE_FROM}'::timestamptz;) to stdout" > /var/mentat/devsnapshot/main/events_json.dat
sudo -u mentat gzip /var/mentat/devsnapshot/main/events_json.dat
sudo -u mentat psql mentat_events -c "copy (select * from events_thresholded join events on events_thresholded.eventid = events.id where events.storagetime >= '${BACKUP_DATE_FROM}'::timestamptz;) to stdout" > /var/mentat/devsnapshot/main/events_thresholded.dat
sudo -u mentat gzip /var/mentat/devsnapshot/main/events_thresholded.dat
sudo -u mentat psql mentat_events -c "copy (select * from thresholds where thresholdtime >= '${BACKUP_DATE_FROM}'::timestamptz;) to stdout" > /var/mentat/devsnapshot/main/thresholds.dat
sudo -u mentat gzip /var/mentat/devsnapshot/main/thresholds.dat
cd /var/mentat
tar -czPf /var/mentat/devsnapshot-${BACKUP_DATE_FROM}.tar.gz /var/mentat/devsnapshot/
ln -s /var/mentat/devsnapshot-${BACKUP_DATE_FROM}.tar.gz /var/mentat/devsnapshot-latest.tar.gz
rm -rf /var/mentat/devsnapshot/
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment