commit
86a7940e75
7 changed files with 182 additions and 0 deletions
@ -0,0 +1,3 @@ |
|||||||
|
# Default ignored files |
||||||
|
/shelf/ |
||||||
|
/workspace.xml |
||||||
@ -0,0 +1,4 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<project version="4"> |
||||||
|
<component name="VcsDirectoryMappings" defaultProject="true" /> |
||||||
|
</project> |
||||||
@ -0,0 +1,57 @@ |
|||||||
|
#Укажи 1, чтобы снять дамп с event_store, 0 если без event_store |
||||||
|
EVENT_STORE=1 |
||||||
|
|
||||||
|
#Укажи 1, чтобы скачать папку evt целиком, 0 чтобы скачать только файлы из evt/common |
||||||
|
EVT_COMMON=1 |
||||||
|
|
||||||
|
|
||||||
|
# Пароль БД исходного сервера |
||||||
|
SOURCE_DB_PASSWORD=anna5kanna |
||||||
|
|
||||||
|
#Имя БД на исходном сервере |
||||||
|
SOURCE_DB_NAME=mynewdb |
||||||
|
|
||||||
|
#Имя БД на локальном сервере |
||||||
|
DESTINATION_DB_NAME=locality409 |
||||||
|
|
||||||
|
#Номер evt на исходном сервере |
||||||
|
SOURCE_EVT=evt4 |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#IP локалки с платформой |
||||||
|
DESTINATION_IP=217.107.34.92 |
||||||
|
|
||||||
|
#Пользователь локалки с платформой |
||||||
|
DESTINATION_USER=root |
||||||
|
|
||||||
|
#Пароль локалки с платформой |
||||||
|
DESTINATION_PASSWORD=123saveme |
||||||
|
|
||||||
|
#SSH порт локалки с платформой |
||||||
|
DESTINATION_PORT=22 |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#IP локалки с базой |
||||||
|
DESTINATION_DATABASE_IP=217.107.34.92 |
||||||
|
|
||||||
|
#Пользователь локалки с базой |
||||||
|
DESTINATION_DATABASE_USER=root |
||||||
|
|
||||||
|
#SSH Пароль локалки с базой |
||||||
|
DESTINATION_DATABASE_PASSWORD=123saveme |
||||||
|
|
||||||
|
#SSH порт локалки с базой |
||||||
|
DESTINATION_DATABASE_PORT=22 |
||||||
|
|
||||||
|
#Postgres пароль локалки с базой |
||||||
|
DESTINATION_POSTGRES_PASSWORD=anna5kanna |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#Где платформа на исходном серевере (не надо добавлять слэш в конце;) |
||||||
|
SOURCE_PLATFORM_PATH=/home/platform5-server |
||||||
|
|
||||||
|
#Где платформа на локалке |
||||||
|
DESTINATION_PLATFORM_PATH=/home/platform5-server |
||||||
@ -0,0 +1,10 @@ |
|||||||
|
#!/bin/bash |
||||||
|
|
||||||
|
su - postgres -c "PGPASSWORD=\"anna5kanna\" psql -U postgres -c \"create database locality409 |
||||||
|
WITH OWNER = postgres |
||||||
|
ENCODING = 'UTF8' |
||||||
|
TABLESPACE = pg_default |
||||||
|
LC_COLLATE = 'ru_RU.UTF-8' |
||||||
|
LC_CTYPE = 'ru_RU.UTF-8' |
||||||
|
TEMPLATE = template0 |
||||||
|
CONNECTION LIMIT = -1;\"" |
||||||
@ -0,0 +1,11 @@ |
|||||||
|
#!/bin/bash |
||||||
|
|
||||||
|
su - postgres -c "PGPASSWORD=\"DESTINATION_POSTGRES_PASSWORD\" psql -U postgres -c \"create database DESTINATION_DB_NAME |
||||||
|
WITH OWNER = postgres |
||||||
|
ENCODING = 'UTF8' |
||||||
|
TABLESPACE = pg_default |
||||||
|
LC_COLLATE = 'ru_RU.UTF-8' |
||||||
|
LC_CTYPE = 'ru_RU.UTF-8' |
||||||
|
TEMPLATE = template0 |
||||||
|
CONNECTION LIMIT = -1;\"" |
||||||
|
|
||||||
@ -0,0 +1,67 @@ |
|||||||
|
#!/bin/bash |
||||||
|
#apt update && apt install sshpass -y |
||||||
|
set -a # export variables from config.txt test |
||||||
|
source config.txt |
||||||
|
set +a # stop exporting |
||||||
|
|
||||||
|
DATE="$(date +%Y-%m-%d_%H-%M-%S)" |
||||||
|
echo $DATE |
||||||
|
|
||||||
|
#1. We are on the source (e.g. main) |
||||||
|
systemctl is-active --quiet platform5.service && systemctl stop platform5 |
||||||
|
systemctl is-active --quiet platform6.service && systemctl stop platform6 |
||||||
|
|
||||||
|
db_backup() { |
||||||
|
echo EVENT_STORE=$EVENT_STORE |
||||||
|
if [[ "$EVENT_STORE" == 0 ]]; then |
||||||
|
echo Making backup without event_store |
||||||
|
PGPASSWORD="$SOURCE_DB_PASSWORD" pg_dump -Fc -T event_store -U postgres $SOURCE_DB_NAME > /var/backups/$SOURCE_DB_NAME.migration.$DATE.sql |
||||||
|
elif [[ "$EVENT_STORE" == 1 ]]; then |
||||||
|
echo Making backup with event_store |
||||||
|
PGPASSWORD="$SOURCE_DB_PASSWORD" pg_dump -Fc -U postgres $SOURCE_DB_NAME > /var/backups/$SOURCE_DB_NAME.migration.$DATE.sql |
||||||
|
else echo "EVENT_STORE value must be 0 or 1" && exit |
||||||
|
fi |
||||||
|
|
||||||
|
echo "send dump to the destination" |
||||||
|
echo Sending db backup to destination server |
||||||
|
cd /var/backups/ && yes | sshpass -p "$DESTINATION_DATABASE_PASSWORD" scp -P $DESTINATION_DATABASE_PORT -o StrictHostKeyChecking=no $SOURCE_DB_NAME.migration.$DATE.sql $DESTINATION_DATABASE_USER@$DESTINATION_DATABASE_IP:~/ |
||||||
|
cd - |
||||||
|
} |
||||||
|
|
||||||
|
evt_full_rsync(){ |
||||||
|
echo "send $SOURCE_EVT to the destination" |
||||||
|
sshpass -p "$DESTINATION_PASSWORD" rsync -e "ssh -p $DESTINATION_PORT" -avz --ignore-existing $SOURCE_PLATFORM_PATH/bin/storage/1/$SOURCE_EVT/ $DESTINATION_USER@$DESTINATION_IP:$DESTINATION_PLATFORM_PATH/bin/storage/1/$SOURCE_EVT/ |
||||||
|
} |
||||||
|
|
||||||
|
evt_common_files_rsync(){ |
||||||
|
echo "send files from $SOURCE_EVT/common to the destination" |
||||||
|
sshpass -p "$DESTINATION_PASSWORD" ssh $DESTINATION_USER@$DESTINATION_IP -p $DESTINATION_PORT "mkdir -p $DESTINATION_PLATFORM_PATH/bin/storage/1/$SOURCE_EVT/common/" |
||||||
|
sshpass -p "$DESTINATION_PASSWORD" rsync -e "ssh -p $DESTINATION_PORT" -avz --ignore-existing -f"- */" -f"+ *" $SOURCE_PLATFORM_PATH/bin/storage/1/$SOURCE_EVT/common/ $DESTINATION_USER@$DESTINATION_IP:$DESTINATION_PLATFORM_PATH/bin/storage/1/$SOURCE_EVT/common/ |
||||||
|
} |
||||||
|
|
||||||
|
fonts_rsync(){ |
||||||
|
echo "send fonts to the destination" |
||||||
|
sshpass -p "$DESTINATION_PASSWORD" ssh $DESTINATION_USER@$DESTINATION_IP -p $DESTINATION_PORT "mkdir -p $DESTINATION_PLATFORM_PATH/bin/storage/1/fonts/" |
||||||
|
sshpass -p "$DESTINATION_PASSWORD" rsync -e "ssh -p $DESTINATION_PORT" -avz --ignore-existing $SOURCE_PLATFORM_PATH/bin/storage/1/fonts/ $DESTINATION_USER@$DESTINATION_IP:$DESTINATION_PLATFORM_PATH/bin/storage/1/fonts/ |
||||||
|
} |
||||||
|
|
||||||
|
if [[ "$EVT_COMMON" == 0 ]]; then |
||||||
|
echo "Качаю файлы из evt/common" |
||||||
|
# evt_common_files_rsync |
||||||
|
elif [[ "$EVT_COMMON" == 1 ]]; then |
||||||
|
echo "Качаю evt целиком" |
||||||
|
# evt_full_rsync |
||||||
|
else echo "EVENT_COMMON value must be 0 or 1" && exit |
||||||
|
fi |
||||||
|
|
||||||
|
#db_backup |
||||||
|
|
||||||
|
sed -e "s/DESTINATION_DB_NAME/${DESTINATION_DB_NAME}/" \ |
||||||
|
-e "s/DESTINATION_POSTGRES_PASSWORD/${DESTINATION_POSTGRES_PASSWORD}/"\ |
||||||
|
create_db.sh.template > create_db.sh |
||||||
|
|
||||||
|
sshpass -p "$DESTINATION_DATABASE_PASSWORD" ssh -p $DESTINATION_DATABASE_PORT $DESTINATION_DATABASE_USER@$DESTINATION_DATABASE_IP 'bash -s' < create_db.sh |
||||||
|
#evt_full_rsync |
||||||
|
#evt_common_files_rsync |
||||||
|
#fonts_rsync |
||||||
|
#ssh $DESTINATION_USER@$DESTINATION_IP -p $DESTINATION_PORT "create_db.sh." |
||||||
@ -0,0 +1,30 @@ |
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
1. Стоп сервера |
||||||
|
2. Снятие дампа (с евент стором/без евент стора) |
||||||
|
|
||||||
|
5. Отправка его на удаленный сервер/стянуть с удаленного сервера |
||||||
|
6. Создание базы |
||||||
|
7. Вотсановление дампа |
||||||
|
|
||||||
|
|
||||||
|
8. скачиванние платформы, ветку берем из конфига. фронт и бэк. |
||||||
|
|
||||||
|
9. рсикаем нужный евт в сторадж. |
||||||
|
фонт |
||||||
|
|
||||||
|
из evt/common качаем все файлы , не папки, |
||||||
|
|
||||||
|
скрипт 2 - докачка файлов. |
||||||
|
потом отдельно докачиваем папки |
||||||
|
если звездочка то все. если не звезочка то перечислкенные через запятую имена папок. |
||||||
|
|
||||||
|
|
||||||
|
10. Исправление конфига дб конф |
||||||
|
|
||||||
|
в конфиг ставим пароль бд на удаленной. потм прописываем его в дб.конф |
||||||
|
|
||||||
|
11. Докачка нужных файлов. - скрипт2 |
||||||
|
|
||||||
|
старт сервиса |
||||||
Loading…
Reference in new issue