Как сделать бэкап баз 1С на PostgreSQL

Для Ubuntu 22.04.

Для начала необходимо создать файл скрипта /etc/snake-backup-script по бэкапированию со следующим содержимым:

#!/bin/bash -e

declare -a databases=("buh" "ut" "zup")

for dbname in "${databases[@]}"
do
FILENAME=/backups-postgre/backup-$dbname-$(date +"%Y-%m-%dT%H-%m-%S")".dump.gz"

if sudo -u postgres pg_dump $dbname | gzip > $FILENAME ; then
        echo $FILENAME "OK"
else
        echo $FILENAME "ERROR"
fi

done

find /backups-postgre -type f -ctime +20 -delete

exit 0

Этот файл при запуске будет перебирать массив баз данных PostgreSQL и делать по ним выборочный бэкап и отправлять каждую БД в отдельный gz файл. Файл будет иметь имя включающее признак backup, название БД и дату/время. Таким образом, каждый бэкап будет уникальным и весь вопрос будет только в том чтобы следить за свободным пространством. Важно, чтобы бэкап выполнялся от имени postgres, для этого в скрипте используется модификатор sudo. Запись find будет искать бэкапы старше 20 дней и удалять их. Это сделано чтобы не загромождать диск.

Файл будет запускаться из Cron каждые три часа. Для этого нужно настроить Cron.

sudo crontab -e

Чтобы бэкап запускался каждый день в 7 утра, в файл внести запись:

0 7 * * * /etc/snake-backup-script

Теперь хороший вопрос, как восстановить:

Распаковываем нужную резервную копию:

gunzip /backups-postgre/mybackupfile.dump.gz

su postgres

Проверить наверняка базы данных:

psql -l

Удалить базу, в которую восстанавливать:

psql -c "DROP DATABASE mydatabase;"

Создать заново базу данных:

psql -c "CREATE DATABASE mydatabase;"

Восстановить базу данных:

psql -d mydatabase < /backups-postgre/mybackupfile.dump

Патриотический к 9 мая. Награды деда.

Поздравляю всех нас с Днём Великой победы!

Два года назад я уже выпустил статью, как мой деда дошёл до Берлина, и не просто дошёл, а рискуя жизнью, сбивая врага, под голодом и лишениями, зимой и летом (https://dzen.ru/a/YnYIhPq_RVeRURsm).

Сегодня, достав аккуратно убранные награды деда, я ещё раз посмотрел на них, и в очередной раз осознал как много они значат не только для меня, но и для всех людей, которых деда защищал.

Не знаю, знает ли деда, что в моей семье помнят о нём и гордятся его заслугами, хорошо помнят за что была эта война, и какой ценой достигалась победа. Но самое главное, мы воевали как всегда за то, чтобы просто жить в мире, чтобы сохранить свою историю, свои традиции, свою культуру. И победа была столь значимой тогда, что много десятков лет никто даже в своих самых смелых фантазиях не думал вступить с нами в конфликт. И вот прошло почти восемь десятков лет, и по ту сторону границы забыли об этом правиле, и посчитали, что Россия уже “не та”. И возможно, оно так и было бы, ведь мы пережили лихие 90-е, пережили распад общей идеологии. Люди стали разобщаться, их мировоззрение стало впитываться в различные субкультуры, а в дополнение людей стали делить междоусобными рознями. Это было всё до тех пор, пока над нашей страной снова не нависла реальная угроза существования. И если кто-то этого не понял, и продолжил жить не обращая на всё происходящее внимание, я считаю, он никто иной как предатель своей Родины. Если кто-то думает, что эта война не его и не его семьи, что война не входит в его планы, что он пацифист и против любой войны, то он не живёт, а существует. У нас и есть борьба за мир, за мир на нашей земле.

Тысячи солдат с оружием в руках, таких же как мой деда, сейчас идут точно по тому же пути на запад и с точно такой же целью.

И самое главное, что сейчас им важно знать, что их внуки тоже будут помнить о них, будут гордиться ими и понимать за что была эта война. Я уверен, что общество наше переосмыслит сейчас многое, научится слышать зов своей Родины и поймет насколько всё происходящее серьёзно и важно для каждого из нас. Я уверен, что сейчас наш тыл должен оставаться надёжной опорой нашему фронту независимо от политических и социальных распрей, от коррупционных скандалов, от культурных и религиозных розней, а всех, кто мешает этому, сбрасывать со своих плеч.

…Ещё раз поднимая в руке каждый орден и медаль моего деда, я ощутил силу духа моего деда, его волю к победе, его значимый вклад в нашу общую и лично мою жизнь…

С Днём Победы всех нас! С Днем Победы наши бойцы! С Днём Победы, мой деда!

28-29.05.2024

Снится, что держу 2 непонятные старинные монеты. Одна была небольшой и легкой. а вторая размером с ладонь и в ней чувствовался вес. Я немного разглядел большую. На ней была очень рельефная чеканка, а средняя часть выполнена из золота. Были на ней какие-то надписи, но я не смог их прочитать., но было интересно что это за монета.

Тут я обнаружил, что нахожусь перед входом в какой-то дом. Дом был сделан в небольшом пригорке как пещера. Я вошёл туда, прошёл несколько коридоров неровной формы и увидел помещение с достаточно большим количеством людей, и на входе туда тоже сидел человек. Все были одеты в белые простыни. Почему-то в этот момент я подумал, что это древняя баня, и понимаю, что я переместился в прошлое. Тут же у меня ещё возникла мысль, что наверно человек на входе берет за вход плату, но я не хочу ни отдавать, ни показывать, ни менять свою золотую монету. Я подхожу к нему и спрашиваю театрально так отводя ладонь правой руки в сторону,- Уважаемый, могу я войти туда? – В этот момент я вижу его лицо, а это старик с седой бородой. Он мне отвечает,- Поклонись до земли и входи! Я тут понимаю, что делать это я не умею, да и как я согнусь так, но и плату монетой тоже вносить не хочу, по этому выдыхаю больше воздуха и сгибаюсь, упираясь лицом в ноги, и вдруг вижу, что я тоже замотан в белую простыню. Через мгновение понимаю, что голова всё же не достаёт земли даже в полностью согнутом виде, по этому немного сгибаю колени и чувствую как макушка слегка коснулась поверхности. После этого встаю и вижу как старик жестом показывает, что я могу войти внутрь помещения. Я прохожу несколько рядом сидящих и стоящих людей в белых простынях и слышу как говорит мне какой-то голос,- Монеты были придуманы не для торговли, их изначально дарили любящие сердца, потому что монеты было легко сделать. Но они были дороги не потому что из золота, а потому что были сделаны и подарены в знак любви. Потом у людей их накопилось достаточное количество и они решили обменивать на них товар.

В этот момент я понял, что начинаю просыпаться и наконец стал осознавать, что это вовсе не баня, а люди одеты не в простыни, они – древне-римские мудрецы и ученые.

Как делать обновление ESXi

Процесс обновления достаточно прост и не вызывает каких-то проблем. Сначала нужно найти архив для этого обновления. Он может быть уже в поставке самого ESXi. Т.е. поставить стандартный хост из образа .iso, но например, для HP Gen9 доустановить специальное обновление, вот такой файл:

VMware-ESXi-6.5.0-Update3-14990892-HPE-preGen9-650.U3.9.6.10.1-Dec2019-depot.zip

Последовательность действий следующая.

1. Закинуть этот файл на storage, например, на datastore1

2. Погасить все виртуальные машины

3. Перевести хост в режим обслуживания:

5. Подключиться к хосту ESXi по ssh

6. Выполнить команду:

    esxcli software vib update --depot /vmfs/volumes/datastore1/VMware-ESXi-6.5.0-Update3-14990892-HPE-preGen9-650.U3.9.6.10.1-Dec2019-depot.zip

    Через несколько секунд появится куча слов с перечислением объектов обновления.

    6. Перезагрузить хост

    7. Вернуться из режима обслуживания

    8. Запустить виртуальные машины

    Postgresql некоторые полезные запросы

    При выполнении psql БД может выдавать ошибку, тогда нужно выполнить:

    su postgres
    psql

    Получить список всех баз с их размером:

    SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS size FROM pg_database ORDER BY pg_database_size(pg_database.datname) DESC;

    Развертывание OVA

    Начиная с того, как появился WEB-интерфейс по управлению ESXi, по крайней мере для 6.5 появилась проблема с развертыванием больших OVA. Через какое-то время сеанс заканчивается по таймауту и процесс развертывания останавливается. Эту проблему можно решить через утилиту ovftool:

    ovftool --noSSLVerify -ds=datastore1 -nw="VM Network" -n="My Ubuntu VM" "c:\myTMPfolder\MyUbuntuVM.ova" vi://АдресСервераESXi/

    Если забыл админский пароль от 1С

    Тут главное без паники и чтобы был доступ к БД конфигурации.

    Подключиться к Postgre

    su postgres

    psql

    Найти нужную базу данных

    SELECT datname FROM pg_database;

    Подключиться к БД

    \connect MyDatabaseName

    Переименовать таблицу пользователей

    ALTER TABLE v8users RENAME TO v8users_tmp;
    UPDATE Params SET FileName = ‘users.usr_tmp’ WHERE FileName = 'users.usr';

    Войти в конфигуратор и ничего больше не делать

    Вернуть всё как было

    ALTER TABLE v8users_tmp RENAME TO v8users;
    UPDATE Params SET FileName = ‘users.usr’ WHERE FileName = 'users.usr_tmp';

    Открыть пользователей и установить на нужного админского пользователя нужный пароль, либо добавить нового.

      Торрент-клиент qBittorrent под Ubuntu

      Представляю ещё один торрент-клиент, который я проверил на Ubuntu server. Тут, в отличии от ранее опубликованного Deluged + Deluge web, всё в одном сразу и демон торрент-сервера и веб-интерфейс. Всё что нужно для установки, это выполнить следующие команды.

      add-apt-repository ppa:qbittorrent-team/qbittorrent-stable && \
      apt install -y qbittorrent qbittorrent-nox
      
      cat > /etc/systemd/system/qbittorrent-nox.service << EOF
      [Unit]
      Description=qBittorrent Command Line Client
      After=network.target
      
      [Service]
      Type=forking
      User=root
      Group=root
      UMask=000
      ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=8212
      Restart=on-failure
      
      [Install]
      WantedBy=multi-user.target
      EOF
      
      systemctl daemon-reload && \
      systemctl enable qbittorrent-nox && \
      systemctl stop qbittorrent-nox && \
      systemctl start qbittorrent-nox && \
      systemctl status qbittorrent-nox
      

      Теперь можно протестировать:

      http://АдресСервера:8212

      Пользователь по умолчанию: admin

      Пароль: adminadmin