Macroscop

Лечим ошибку запуска Postgres

Внимание! Это удалит базу событий, но не архив!

#!/bin/bash
# Лекарство при проблеме запуска postgresql@12-main на серверах Macroscop
# Создано @Sheredeka при поддержке @macroscopsupportbot для АО "ЛИМАК"

# Останавливаем работу сервисов
systemctl stop macroscop && echo "macroscop остановлен"
systemctl stop postgresql@12-main && echo "postgresql остановлен"

# Пересоздаем БД 
rm -rf /var/lib/postgresql/12/main && echo "БД удалена"
mkdir -p /var/lib/postgresql/12/main
chown -R postgres:postgres /var/lib/postgresql/12/main
sudo -u postgres /usr/lib/postgresql/12/bin/initdb -D /var/lib/postgresql/12/main --locale=C.UTF-8 --encoding=UTF8
systemctl start postgresql@12-main && echo "БД создана, сервер запущен"
sleep 2
sudo -i -u postgres psql -c "CREATE USER macroscop WITH PASSWORD 'masterkey' SUPERUSER;" && echo "Пользователь БД создан" || echo "!!! Проблема с БД !!!"

# Удаляем БД на дисках с видеоархивами
arclist=$(find /mnt -maxdepth 2 -type d -name 'MacroscopArchive')
for var in $arclist
do
    if [ -d "$var/db" ]
    then
        rm -rf $var/db
        echo "Удален каталог $var/db с базой данных архива"
    fi
done

# Запускаем Macroscop
systemctl start macroscop && echo "Сервер Macroscop запускается...."

echo 'Используй << journalctl -f --since "-5min" -u macroscop >> для просмотра статуса загрузки'