Сообщения

Сообщения за ноябрь, 2019

Установка PostgreSQL на Ubuntu 18.04

Инструкция по установке объектно-реляционной СУБД PostgreSQL на виртуальный сервер под управлением Ubuntu 18.04. Что это такое? PostgreSQL - реляционная СУБД, с дополнительным набором объектно-ориентированных функций. Postgres предлагает существенную дополнительную мощность за счет включения следующих четырех дополнительных базовых концепций, благодаря которым пользователи могут легко расширить систему: классы, наследование, типы, функции. Дополнительные функции обеспечивают гибкость: ограничения, триггеры, правила, целостность транзакций. Роль в Postgres это учетная запись для авторизации, в ней неразличимы группы и пользователи. Установка и подключение Для установки необходимо обновить локальную базу пакетов: sudo apt update sudo apt upgrade Установите PostgreSQL: sudo apt install postgresql postgresql-contrib После установки у вас появится пользователь postgres, добавьте его в группу sudo: usermod  -a  -G sudo postgres Установите пароль пользователю: pass

Как отключить IP версии 6 в Linux

IPv6 далеко не всегда может использоваться в системе. Более того, он может вызвать некоторые проблемы при обращении к локальной петле (127.0.0.1) — запросы могут пойти на адрес ::1, что может привести к тому, что некоторые приложения будут работать не корректно. В данной инструкции используются универсальные методы, которые подойдут для различных систем, например, Ubuntu, CentOS, Debian, Red Hat и так далее. Отключение через ядро Linux Быстрее всего отключить IPv6 через настройку ядра. Это универсальный способ и он подойдет для многих дистрибутивов на базе Linux. Глобально (для всех интерфейсов) Создаем или открываем файл: vi /etc/sysctl.d/99-sysctl.conf ... или vi /etc/sysctl.d/10-ipv6-privacy.conf * 99-sysctl.conf является основным конфигурационным файлом, а 10-ipv6-privacy.conf в каталоге sysctl.d — дополнительным. Для удобства лучше использовать последний. Добавляем следующие строки: net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6

Простой скрипт для инкрементального бекапа директорий

Критерии: 1) Возможность делать бекапы на лету в условиях ограниченных системных ресурсов (например VPS) 2) Возможность нативно удалять устаревшие бекапы 3) Возможность работать с примонтированной файловой системой Процесс выбор пал на утилиту rdiff-backup ( офф. сайт ). Все возможности данной утилиты вместе с примерами и документацией есть на сайте, скажу вкратце, что всем трем пунктам она соответствует. В качестве хранилища для файлов я использую домашний роутер с внешним хардом (монтирую к серверу посредством sshfs), поэтому в скрипте использую именно ее. Кроме того, хотелось получать уведомления о результатах бекапа на почту — это также предусмотрено. Результат #!/bin/sh REMOTE_ADDR='user@storage:/remote_path' # Путь до удаленного хранилища MOUNTPOINT='/backup_remote' # Точка монтирования бекапного раздела BACKUP_DIR='/somedir' # Директория которую хотим бекапить MAILFROM='root@server' # Адрес, с которого посылать отчеты MAILTO='mail@example.co

Инкрементальный backup в дюжину строк

Что самое важное для бекапов? Правильно, воспроизводимость. Поэтому давайте сделаем велосипед на коленке и на опции --link-dest у rsync . У нашего велосипеда не будет сложной структуры данных в стиле git как у restic, ни кучи бекендов как у duplicity. Но мы сможем восстановить его работу по памяти даже под стрессом. Опция --link-dest позволяет указывать предудущую версию бекапа, на которую rsync будет ставить жёсткие ссылки , если файлы с прошлого раза не поменялись. То есть, rsync --link-dest=/var/backups/www.1 remote:/var/www /var/backups/www.0 скопирует с удалённого сервера в папку /var/backups/www.0 только те файлы, что поменялись, а на оставшиеся поставит жёсткую ссылку в /var/backups/www.1 Теперь дело за малым: обернуть вызов rsync в код, который сдвигает бекапы на один назад и освобождает место для нового бекапа в /var/backups/www.0, а также удаляет по необходимости последнюю копию /var/backups/www.9. #отсортировать папочки  find /var/www/backups/ -maxdepth 1 -type d -name &

Настройка Proxy в Ubuntu

Изображение
Узнайте, как настроить подключение через прокси-сервер в Ubuntu правильно и самостоятельно Чтобы настроить подключение в Убунту через прокси, необходимо открыть меню «Системные параметры», а затем перейти к разделу «Сеть». Найдите раздел «Сеть» в операционной системе Кликните по пункту «Сетевая прокси-служба» и установите способ «Вручную», после чего введите свои настройки. В «Сетевой прокси-службе» и установите способ «Вручную» Следующий шаг — внести свои настройки Недостатком подобного способа является то, что, если у вас прокси с авторизацией по логину и паролю, то указать эти данные нельзя, и, как следствие, прокси работать не будет. Произвести настройку на системном уровне можно также через файлы конфигурации. Чтобы сделать это, откройте с root-правами файл /etc/environment (делается это командой: sudo nano /etc/environment). В конце файла добавьте строки: https_proxy=«https://user:pass@proxy:port/» http_proxy=«http://user:pass@proxy:port/» ftp_proxy=«ftp://user:pas

Linux. Добавить пользователя в группу

Чтобы добавить пользователя "vasya" в группу "www-data", необходимо в терминале (CTRL+ALT+T) выполнить следующую команду: sudo usermod -aG www-data vasya -a добавить пользователя в дополнительную группу. Используется только вместе с опцией -G -G <группы_через_запятую_без_пробелов> — список дополнительных групп (если указано больше одной группы, то разделитель — запятая) Не забываем справку man usermod Посмотреть текущие группы groups Теперь смотрим информацию о пользователе: id user Чтобы увидеть результат, нужно перелогиниться.

Поиск по истории команд в bash

Маленькие хитрости при работе с историей введенных в терминале команд. 1. Жмем в терминале Ctrl+R и начинаем набирать текст, который хотим найти. Если совпадений несколько, то для перебора можно использовать стрелки вверх, вниз и клавиши PageUp и PageDown. 2. Сначала пишем начальные символы текста, который хотим найти, затем перебираем варианты нажимая клавиши PageUp, PageDown. 3. Команда history | grep текст_для_поиска. Тут я думаю все понятно.