Добавление Swap в Ubuntu Server

По умолчанию сервера Google Cloud Platform предоставляются без swap, а это плохо, потому что если используется e2-micro оперативная память в 1G быстро закончится.

Чтобы оставить сервер работоспособным можно подключить swap:

При настройки swap использовался сервер Ubuntu 18.04

sudo swapon --show # проверяем наличие swap
sudo fallocate -l 1G /swapfile # создаем файл размер 1G или можно указать 1024M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile # включаем swap
sudo swapon --show # проверяем swap
sudo nano /etc/fstab # настраиваем подключение диска
/swapfile swap swap defaults 0 0

Все должно работать. Оригинал тут How to Add Swap Space on Ubuntu 18.04 — Google Cloud (cloudbooklet.com)

Ещё одна статья по изменению существующего swap

  1. Turn off all swap processes
1sudoswapoff -a

2. Resize the swap

1sudoddif=/dev/zeroof=/swapfilebs=1G count=8

if = input file
of = output file
bs = block size
count = multiplier of blocks3. Change permission

1sudochmod600 /swapfile

4. Make the file usable as swap

1sudomkswap /swapfile

5. Activate the swap file

1sudoswapon /swapfile

6. Edit /etc/fstab and add the new swapfile if it isn’t already there

1/swapfilenone swap sw 0 0

7. Check the amount of swap available

1grepSwapTotal /proc/meminfo

Ручное обновление NGINX до версии 1.20.1 для Ubuntu 20.04 LTS

// Uninstall Nginx
sudo apt-get remove nginx
sudo apt purge nginx*

//Then, install Nginx following document: http://nginx.org/en/linux_packages.html#Ubuntu
sudo apt install curl gnupg2 ca-certificates lsb-release
echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx"| sudo tee /etc/apt/sources.list.d/nginx.list
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
sudo apt update
sudo apt install nginx

Оригинал с Update nginx in ubuntu 14.04 — Stack Overflow

Мое примечание: если обновление происходит с версии 1.18.* то требуется предварительно сохранить копию файлов из папки /etc/nginx/sites-available

Файлы из папки /etc/nginx/sites-enabled копировать не нужно, они лишь символьные ссылки.

После обновления до версии 1.20.* нужно вручную перенеси информацию в каталог /etc/nginx/conf.d

Блокировка ipv6 запросов к vsftpd

При настройке vsftpd и включении ufw происходит блокировка.

Если в файле vsftpd.conf установлены следующие параметры

  • listen=NO
  • listen_ipv6=YES

и еще включен firewall и у Вас не работает подключение к ftp, то можно попробовать следующее.

В файле vsftpd.conf установить следующие параметры:

  • listen=YES
  • а listen_ipv6=YES закомментировать.

Еще один способ логирования состояния сервера

В данной статье будет описан механизм мониторинга сервера. Суть мониторинга заключается в простом пробросе выходной информации на tcp-сервер, который ее в последствии и обработает:

  • [remote server] — IP или доменное имя TCP сервера для обработки информации
  • [port] — порт сервера

Каталог для хранения bash-скриптов находиться по адресу /var/lib/big-brother

Примечание: если нет такого каталога, то нужно его создать.

Читать далее «Еще один способ логирования состояния сервера»

Работа с часовыми поясами

Все сервера должны быть в одном часовом поясе и настроить их можно по инструкциям ниже:

Далее в nodejs нужно добавить код для преобразования даты:

var moment = require('moment');
...
Date.prototype.toJSON = function () { return moment(this).format('YYYY-MM-DDTHH:mm:ss.SSSZZ'); }

Настройка временной зоны на Ubuntu 18

В systemd есть своя утилита для настройки даты и часового пояса. Чтобы узнать текущее состояние выполните:

timedatectl status

Для просмотра всех доступных временных зон выполните такую команду:

Читать далее «Настройка временной зоны на Ubuntu 18»

Autodoc для postgresql

Ставим приложение autodoc

$ sudo apt install libdbi-perl libhtml-template-perl libterm-readkey-perl libdbd-pg-perl
$ git clone https://github.com/cbbrowne/autodoc.git
$ cd autodoc
$ sudo make install

Дальше запускаем скрипт

postgresql_autodoc -d cic-dev-db -h 192.168.17.111 -u postgres --password -t html -s core -f cic-dev-db-core

Примечание: схемы можно передать как

-s "core|dbo"

Исходный код: https://github.com/cbbrowne/autodoc

Запускаем Bot Framework на nginx

server {
    server_name vnext-bot.appcode.pw;
    client_max_body_size 2M;
    location / {
        try_files $uri $uri/ @proxy;
    }

    location ~* {
        proxy_pass http://127.0.0.1:5000;  
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $server_name;
    }
...
}

Статьи:

https://groosha.gitbook.io/telegram-bot-lessons/extra/multiple_bots_2