[DO-1037] add backup scripts (!6)
Reviewed-on: https://git.avroid.tech/DevOps/avroid_scripts/pulls/6
This commit is contained in:
7
backup_scripts/postgres/post_backup.sh
Normal file
7
backup_scripts/postgres/post_backup.sh
Normal file
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
DIRBACKUP="/data/backups"
|
||||
|
||||
if [ -d "${DIRBACKUP}" ]; then
|
||||
rm -rf "${DIRBACKUP:?}/"*
|
||||
fi
|
||||
48
backup_scripts/postgres/pre_backup.sh
Normal file
48
backup_scripts/postgres/pre_backup.sh
Normal file
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
|
||||
DATE=$(date +%F)
|
||||
DIRBACKUP="/data/backups"
|
||||
DBUSER="postgres"
|
||||
TEST_BACKUP_SERVER="h-license-manager-backup-server.avroid.cloud"
|
||||
|
||||
get_leader() {
|
||||
curl -s 127.0.0.1:8008 | jq -j ".role"
|
||||
}
|
||||
|
||||
if [ "$(get_leader)" != "master" ]; then
|
||||
echo "I'm not leader. Exit"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
getDbName() {
|
||||
psql -lA -x -U ${DBUSER} -p 15432 -d postgres | grep Name | grep -v -P "template0|template1" | cut -d "|" -f 2
|
||||
}
|
||||
|
||||
DBLIST=$(getDbName)
|
||||
|
||||
createBackup() {
|
||||
for db in $DBLIST; do
|
||||
echo "===================================="
|
||||
echo "START create backup database: ${db}"
|
||||
|
||||
pg_dump -Fc -U ${DBUSER} -p 15432 -d "${db}" >"${DIRBACKUP}/${db}-${DATE}".sql
|
||||
|
||||
bzip2 -9 "${DIRBACKUP}/${db}-${DATE}".sql
|
||||
|
||||
copyBackupToTestServer "${DIRBACKUP}/${db}-${DATE}".sql.bz2 ${TEST_BACKUP_SERVER}
|
||||
|
||||
echo "END database bzip2: ${db}"
|
||||
done
|
||||
|
||||
pg_dumpall -p 15432 -U postgres --roles-only > "${DIRBACKUP}/roles-${DATE}".sql
|
||||
copyBackupToTestServer "${DIRBACKUP}/roles-${DATE}".sql ${TEST_BACKUP_SERVER}
|
||||
}
|
||||
|
||||
copyBackupToTestServer() {
|
||||
rsync $1 $2::backup || true
|
||||
}
|
||||
|
||||
[[ $(ls -A ${DIRBACKUP}) ]] 2>/dev/null && echo "dir ${DIRBACKUP} not empty" && exit 123
|
||||
|
||||
createBackup
|
||||
copyBackupToTestServer
|
||||
41
backup_scripts/postgres/pre_backup_for_backup_test.sh
Normal file
41
backup_scripts/postgres/pre_backup_for_backup_test.sh
Normal file
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
|
||||
DATE=$(date +%F)
|
||||
DIRBACKUP="/data/backups"
|
||||
DBUSER="postgres"
|
||||
|
||||
get_leader() {
|
||||
curl -s 127.0.0.1:8008 | jq -j ".role"
|
||||
}
|
||||
|
||||
if [ "$(get_leader)" != "master" ]; then
|
||||
echo "I'm not leader. Exit"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
getDbName() {
|
||||
psql -lA -x -U ${DBUSER} -p 15432 -d postgres | grep Name | grep -v -P "template0|template1" | cut -d "|" -f 2
|
||||
}
|
||||
|
||||
DBLIST=$(getDbName)
|
||||
|
||||
createBackup() {
|
||||
for db in $DBLIST; do
|
||||
echo "===================================="
|
||||
echo "START create backup database: ${db}"
|
||||
|
||||
pg_dump -Fc -U ${DBUSER} -p 15432 -d "${db}" >"${DIRBACKUP}/${db}-${DATE}".sql
|
||||
|
||||
bzip2 -9 "${DIRBACKUP}/${db}-${DATE}".sql
|
||||
|
||||
echo "END database bzip2: ${db}"
|
||||
done
|
||||
|
||||
pg_dumpall -p 15432 -U postgres --roles-only > "${DIRBACKUP}/roles-${DATE}".sql
|
||||
}
|
||||
|
||||
|
||||
[[ $(ls -A ${DIRBACKUP}) ]] 2>/dev/null && echo "dir ${DIRBACKUP} not empty" && exit 123
|
||||
|
||||
createBackup
|
||||
copyBackupToTestServer
|
||||
Reference in New Issue
Block a user