From dddc45fd46bcd03ecc2ddafc009be09ec5ee7a9a Mon Sep 17 00:00:00 2001 From: Jan Mach <jan.mach@cesnet.cz> Date: Mon, 20 Sep 2021 18:24:31 +0200 Subject: [PATCH] Implemented prototype script for creating snapshots for development purposes. (Redmine issue: #7041) --- conf/scripts/devsnapshot.sh | 47 +++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100755 conf/scripts/devsnapshot.sh diff --git a/conf/scripts/devsnapshot.sh b/conf/scripts/devsnapshot.sh new file mode 100755 index 000000000..3d98ebfc0 --- /dev/null +++ b/conf/scripts/devsnapshot.sh @@ -0,0 +1,47 @@ +#!/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/ -- GitLab