суббота, 7 апреля 2018 г.

Разрешение экрана в Ubuntu

CRT-мониторАвтоматическая настройка разрешения экрана не всегда работает так, как ожидается. При установке дистрибутива X-сервер выбирает самое большое значение разрешения экрана и частоты развёртки из возможных. Это верно для ЖК-мониторов, но не всегда верно для ЭЛТ, так как на 17" мониторе максимальной величиной является 1600x1200, а удобной для просмотра — 1024x768. Если для сеанса Gnome можно выбрать конкретное разрешение, то для экрана входа в систему и загрузки системы графических утилит сразу не предоставлено. Эта проблема легко решается. 
Начнём с экрана загрузки системы. Нам нужно отредактировать один файл. Открываем его через суперпользователя, вводя в терминале:

sudo gedit /etc/usplash.conf

В нём находится что-то подобное:

# Usplash configuration file
xres=1600
yres=1200

Изменяем значения на нужные и сохраняем файл. Всё! При следующей загрузке разрешение уже будет нужным.
Теперь переходим к разрешению окна входа. Как мы говорили выше, оно максимальное из возможных. Значит нужно сделать максимально возможным используемое вами разрешение.
Открываем ещё один файл, предварительно сделав его копию:

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak; sudo gedit /etc/X11/xorg.conf

Находим в нём подобные строчки:
SubSection "Display"
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection


Удаляем ненужные разрешения во всех подобных строчках, чтобы остались только используемые. Сохраняем. Теперь можно перезапустить X-сервер, нажатием Ctrl+Alt+Bkspace.
Так же в системе присутствует псевдографическая утилита для более тонкой настройки X-сервера и более опытных пользователей. Её можно вызвать командой:

sudo dpkg-reconfigure -plow xserver-xorg

Будьте осторожны при её использовании, иначе, при неправильном конфигурировании Вы рискуете ничего не увидеть =)
Подведя итог, можно сказать, что в операционной системе Убунту всё направлено, в первую очередь, на автоматическую настройку. Это хорошо, так как экономит время и силы. С другой стороны, Linux-основа дистрибутива даёт возможность более точной ручной настройки.

понедельник, 25 декабря 2017 г.

РАЗМЕР БАЗЫ ДАННЫХ MYSQL

В наше время базы данных используются практически везде, я уже не говорю про крупные компании и команды разработчиков приложений, даже веб-мастера, которые делают свои сайты используют базы данных для хранения динамически изменяющейся информации. Обычно это одна из самых популярных баз данных — MariaDB или MySQL.
Но сколько занимает ваша база данных? А каждая таблица? Для больших проектов эти показатели могут достигать очень больших значений. В сегодняшней статье мы поговорим о том, как узнать размер базы данных MySQL через консоль и другими способами.

РАЗМЕР БАЗЫ ДАННЫХ MYSQL

Я предполагаю, что ваша база данных установлена в Linux, но большинство методов будут работать и для других операционных систем. Самый простой способ прикинуть сколько места занимают все базы данных — это посмотреть размер папки с файлами базы данных в системе — /var/lib/mysql:
du -h /var/lib/mysql
Утилита позволяет узнать размер базы Mysql в мегабайтах. Но будет гораздо более правильно смотреть информацию о базе данных с помощью ее встроенных инструментов. Для в MySQL есть специальная таблица — Information_schema. Из нее мы и будем брать данные. Но сначала подключитесь к базе данных:
mysql -u root -p
SELECT table_schema AS "Имя базы данных",
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Размер в Мб"
FROM information_schema.TABLES
GROUP BY table_schema;
Запрос выведет точный размер базы MySQL для каждой из существующих баз, теперь вы можете ориентироваться что и сколько занимает. Если у вас очень большой проект и большая база данных, то вы можете выводить информацию в гигабайтах:
SELECT table_schema AS "Имя базы данных",
ROUND(SUM(data_length + index_length) / 1024 / 1024 / 1024, 2) AS "Размер в Гб"
FROM information_schema.TABLES
GROUP BY table_schema;
Но это еще не все. Возможно, в базе данных есть ненужная информация, которая только замедляет работу системы. Мы можем посмотреть размер таблиц для каждой из баз данных. Запрос для этого будет выглядеть следующим образом:
SELECT table_name AS "Имя таблицы",
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size in (MB)"
FROM information_schema.TABLES
WHERE table_schema = "wpfc_options"
ORDER BY (data_length + index_length) DESC;
Данная информация помогает понять какая таблица сколько занимает и это уже может навести на интересные мысли.

РАЗМЕР БАЗЫ ДАННЫХ В PHPMYADMIN

Если вы не очень любите работать в терминале, то вы всегда можете использовать Phpmyadmin для просмотра размера базы данных. Размер каждой из таблиц базы данных вы можете посмотреть на вкладке «Структура», когда выберите базу данных для работы:
Что касается размера самой базы данных, то придется выполнить тот же запрос в интерфейсе программы на вкладке «SQL»:


четверг, 7 декабря 2017 г.

Использование Cryptomator для шифрования Dropbox в Ubuntu 16.04/17.10

Cryptomator – это бесплатное программное обеспечение с открытым исходным кодом, которое очень простое в использовании, и предназначено для шифрования файлов. Оно использует шифрование на стороне клиента, что означает, что каждый файл зашифрован на компьютере пользователя перед отправкой в ​​облако. Содержимое файла, имя файла, размер файла и имена каталогов будут зашифрованы.
Этот инструмент может работать на Linux, Mac, Windows, Android и iOS. Чтобы установить Cryptomator на Ubuntu 16.04 и Ubuntu 17.10, запустите следующие 3 команды в терминале
sudo add-apt-repository ppa:sebastian-stenzel/cryptomator
sudo apt update
sudo apt install cryptomator
После установки, найдите Cryptomator в меню приложений
cryptomator
Или вы можете запустить его из терминала.
cryptomator.sh
Когда вы впервые запускаете Cryptomator, у вас не будет хранилища. Хранилище – это в основном виртуальный жесткий диск. Поэтому вам нужно нажать кнопку «плюс» внизу слева и создать хранилище.
создать хранилище cryptomator
Появится новое окно. Вы должны задать имя вашему хранилищу и выбрать папку Dropbox в качестве адресата.
dropbox cryptomator
Затем установите пароль для защиты хранилища.
пароль cryptomator
Повторно введите пароль, чтобы разблокировать хранилище.
password cryptomator
Хранилище будет установлено как виртуальный жесткий диск (localhost: 42427).
Теперь вы можете поместить свои файлы в хранилище, и они будут автоматически зашифрованы в фоне, а затем сохранятся в вашей папке Dropbox, которая затем будет синхронизирована с серверами Dropbox. Например, я поместил несколько снимков экрана в хранилище.
cryptomator
Вот как они выглядят в Dropbox.
зашифровать файлы
Как только ваши зашифрованные файлы синхронизируются с серверами Dropbox, вы можете заблокировать хранилище.
Когда хранилище заблокировано, виртуальный жесткий диск исчезает из вашего файлового менеджера, поэтому никто не может видеть исходные файлы без пароля.

Как получить доступ к зашифрованным файлам на другом компьютере

Установите Dropbox и Cryptomator на второй компьютер. Подождите пока Dropbox завершит синхронизацию. Затем запустите Cryptomator на втором компьютере и выберите «Открыть имеющееся хранилище».
шифрование файлов
Перейдите в папку Dropbox и выберите главный ключ Cryptomator.
Главный ключ зашифрован паролем хранилища. Вам нужно ввести пароль своего хранилища, чтобы расшифровать ключ, который, в свою очередь, откроет зашифрованное хранилище.
Если вы хотите поделиться зашифрованными файлами, создайте отдельное хранилище с другим паролем и сообщите своей семье, друзьям или коллегам Crypmator, а затем сообщите им пароль.
В настоящее время нет терминальной версии Cryptomator. Но зато есть CryFS.

Использование CryFS для шифрования Dropbox на сервере и настольном компьютере Ubuntu

CryFS – это криптографическая файловая система. Это бесплатный инструмент шифрования с открытым исходным кодом, созданный специально для облачного хранилища. Он очень похож на Cryptomator и может шифровать содержимое файла, имя файла, размер файла и структуру каталогов.
CryFS включен в репозиторий Ubuntu с 17 апреля, поэтому пользователи Ubuntu 17.04/17.10 могут установить CryFS, выполнив следующую команду в терминале.
sudo apt install cryfs
Пользователям Ubuntu 16.04 необходимо установить CryFS из репозитория.
Откройте терминал, и введите следующие команды
sudo nano /etc/apt/sources.list.d/cryfs.list
Затем добавьте следующую строку в файл.
deb http://apt.cryfs.org/ubuntu xenial main
Сохраните и закройте файл. Затем загрузите и импортируйте открытый ключ CryFS, используя следующую команду.
wget -O - https://www.cryfs.org/apt.key | sudo apt-key add -
Обновите список пакетов и установите CryFS.
sudo apt update
sudo apt install cryfs
Чтобы создать зашифрованное хранилище в Dropbox, выполните следующую команду.
cryfs ~/Dropbox/encrypted ~/prosto_files
Это создаст два каталога. ~/Dropbox/encrypted – где будут хранится зашифрованные версии ваших файлов, и ~/prosto_files – где хранятся простые файлы. Вам будет предложено создать пароль.
После создания пароля, вы можете поместить файлы в “prosto_files” каталог, и они будут автоматически зашифрованы, а затем сохранены в ~/Dropbox/encrypted/ каталоге. Если я создам текстовый файл в ~/prosto_files каталоге с использованием команды
echo "hello world" > ~/prost_files/file
Содержимое файла, имя файла, размер файла и структура каталогов будут зашифрованы в папке Dropbox.
Чтобы размонтировать, запустите:
fusermount -u ~/prosto_files
Для повторной установки выполните следующую команду и введите свой пароль.
cryfs ~/Dropbox/encrypted ~/prosto_files

Как получить доступ к зашифрованным файлам на другом компьютере

Установите Dropbox и CryFS на второй компьютер. Подождите, пока Dropbox завершит синхронизацию. Затем смонтируйте зашифрованный каталог, используя следующую команду. Вам нужно будет ввести пароль CryFS.
cryfs ~/Dropbox/encrypted/ ~/prosto_files
Теперь вы можете получить доступ к файлам в каталоге ~/prosto_files.

Setup VNC Server (x11vnc) on Linux Mint 18

1. Remove the default Vino server:
sudo apt-get -y remove vino
2. Install x11vnc:
sudo apt-get -y install x11vnc
3. Create the directory for the password file:
sudo mkdir /etc/x11vnc
4. Create the encrypted password file:
sudo x11vnc --storepasswd /etc/x11vnc/vncpwd
You will be asked to enter and verify the password.  Then press Y to save the password file.
5. Create the systemd service file for the x11vnc service:
sudo nano /lib/systemd/system/x11vnc.service
Copy/Paste this code into the empty file:
[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -noxdamage -repeat -rfbauth /etc/x11vnc/vncpwd -rfbport 5900 -shared
[Install]
WantedBy=multi-user.target

6: Reload the services:
sudo systemctl daemon-reload
7. Enable the x11vnc service at boot time:
sudo systemctl enable x11vnc.service
8. Start the service:
Either reboot or

sudo systemctl start x11vnc.service

вторник, 28 ноября 2017 г.

ПЕРЕНОС САЙТА WORDPRESS

По разным причинам вам может понадобиться перенести свой сайт на другой хостинг или VPS сервер. Это может быть вызвано тем, что ваш проект развивается и для него уже недостаточно ресурсов сервера, а может просто вас не устраивает уровень обслуживания. За все время развития Losst я менял хостинг провайдера много раз, то, что описано в истории сайта далеко не все. Возможно, позже у меня дойдут руки дописать, но не сейчас.
В этой статье я расскажу как выполняется перенос сайта wordpress, как это лучше сделать, что вам необходимо знать для того чтобы переезд прошел гладко и незаметно для пользователей. Ведь это главное.

ЧТО МЫ БУДЕМ ИСПОЛЬЗОВАТЬ?

Несмотря на то что WordPress — это популярный движок и для него существует не только встроенная возможность переноса базы данных на другой сервер, но и огромное количество плагинов для этого, я не рекомендую их использовать. На своем опыте я убедился, что при использовании стандартного экспорта-импорта почему-то теряется множество картинок и потом нужно их восстанавливать. На losst еще до сих пор остались статьи с битыми картинками с тех времен. Мы будем делать все вручную с помощью таких инструментов:
  • ssh;
  • mysql;
  • rsync;
Этого будет вполне достаточно, если вы менее опытный пользователь, то сюда можно добавить еще два инструмента:
  • phpmyadmin;
  • клиент ftp;
Упор я делаю на VPS, рассчитывая на то, что у вас есть доступ к серверу по SSH. Но эта инструкция может быть использована чтобы выполнить перенос сайта на Wordpres на другой хостинг. Большинство современных хостингов дают доступ к ssh консоли хотя бы в html интерфейсе.

ПОДГОТОВКА К ПЕРЕНОСУ WORDPRESS

Первое на что нужно обратить внимание, и желательно, при регистрации хостинга, это DNS. Нам нужно чтобы пользователи ничего не заметили. А поэтому сервера имен не должны меняться. Лучше всего, если ваши сервера имен будут у регистратора доменных имен и он же будет управлять доменной зоной.
Если же вы используете сервера имен вашего хостинга, то при передаче управления на другой хостинг сайт будет недоступен несколько часов. Поэтому сервера имен передайте регистратору, даже если сейчас они у вашего хостинга, а пользователей направляйте на ip сервера с помощью A записи.

ПЕРЕНОС САЙТА WORDPRESS

Сначала нам нужно перенести все файлы сайта на другой сервер. Конечно, вы можете использовать для этого FTP клиент, сначала скачать все файлы по одному с одного сервера, а потом загрузить по одному на другой. Но это сработает, только если у вас немного файлов. С сайтом в несколько гигабайт это может занять дни. Поэтому будем использовать более простой способ через SSH. Подключитесь к вашему серверу по SSH:
ssh root@address1
Обычно для переноса сайтов рекомендуется использовать tar, но это тоже не вариант, если на вашем хостинге недостаточно места для создания архива, поэтому оптимальный ответ на вопрос как скопировать сайт wordpress — использовать rsync:
rsync -avz -e ssh /папка/с/файлами/сайта root@address2:/папка/для/файлов/сайта/
Естественно, что папка для файлов сайта должна уже существовать. Дальше, на этом сервере нам нужно создать резервную копию базы данных, для наших целей этой команды будет вполне достаточно:
mysqldump -u root -p имя_базы > dump.sql
Если у вас большая база данных, то выполнение может занять несколько минут. Осталось передать базу на другой сервер, кладем ее в домашний каталог:
rsync -avz -e ssh dump.sql root@address2:~/
Если ваш сайт использует https, то нужно передать на новый сервер сертификаты, пока вы не подключите домен и не создадите новые:
rsync -avz -e ssh /путь/к/сертификату/site.pem root@address2:~/
rsync -avz -e ssh /путь/к/сертификату/site.key root@address2:~/
Дальше нам останется выполнить еще несколько настроек на этом сервере, но сначала нужно развернуть все на другом. Я предполагаю, что сервер уже настроен, веб-сервер и система управления базами данных установлены и работают. Подключаемся к нему по SSH:
ssh root@address2
Сначала файлы. Утилита rsync сохранит владельца файла из предыдущего сервера или сделает им root. А нам нужно чтобы файлы сайта принадлежали тому пользователю, от имени которого запущен Nginx и php-fpm или Apache. Посмотрите группу и пользователя, от которых они запущены:
Затем поменяйте текущего пользователя и группу всех файлов сайта на нужные с помощью утилиты chown:
chown -R losst:losst /путь/к/файлам/сайта/
Флаг -R включает рекурсивную обработку всех файлов, первый параметр — пользователь, второй, через двоеточие — группа. Дальше мы готовы перейти к базе данных. Сначала нужно создать нашу базу и создать пользователя, с помощью которого WordPress будет к ней подключаться. Для этого войдите в интерфейс mysql:
mysql
> CREATE DATABASE имя_базы_данных;
> CREATE USER 'имя_пользователя'@'%' IDENTIFIED BY 'пароль';
> GRANT ALL PRIVILEGES ON 'имя_базы_данных' . * TO 'имя_пользователя'@'localhost';
> GRANT ALL PRIVILEGES ON 'имя_базы_данных' . * TO 'имя_пользователя'@'address1';
> FLUSH PRIVILEGES;
С помощью этих команд мы создаем новую базу, затем пользователя, даем ему права делать с ней все что он захочет, если он подключен с localhost или сервера с ip address1, а последней командой обновляем таблицу привилегий. Нам осталось только загрузить информацию в базу:
mysql -u root имя_базы_данных < dump.sql
В принципе, для создания базы, пользователя и ее разворачивания можно было использовать Phpmyadmin, но в консоли все проще. Дальше нам осталось отредактировать файл wp-config и указать новые параметры доступа к базе:
vi /путь/к/файлам/сайта/wp-config.php
define('DB_NAME', 'имя_базы_данных');
/** MySQL database username */
define('DB_USER', 'имя_пользователя');
/** MySQL database password */
define('DB_PASSWORD', пароль');
/** MySQL hostname */
define('DB_HOST', 'localhost');
Если хотите использовать HTTPS, то укажите путь к переданным сертификатам в конфигурации Nginx или Apache. Вы уже знаете как перенести wordpress, осталось только протестировать. Теперь возвращаемся на ваш локальный компьютер и добавляем в файл /etc/hosts псевдоним вашего домена, который будет указывать на новый адрес. В Windows тоже есть этот файл, но только находится он по другому адресу:
vi /etc/hosts
address2 ваш_домен.ru
Дальше открываем сайт в браузере, убеждаемся, что это именно новая версия и кэш DNS обновился, затем проверяем как все работает, если все хорошо, то можно перенаправлять A запись регистратора на этот, новый ip адрес:
Доменная зона обновится не мгновенно, на это потребуется довольно много времени, до нескольких дней. Все это время некоторые пользователи будут обращаться к старому серверу чтобы он выдавал новые страницы нужно подключить сюда базу данных. Помните, мы разрешили подключаться к нашей базе от этого сервера, теперь просто укажите на старом сервере address1 в wp-config.php данные доступа и адрес сервера address2 вместо localhost. Готово. Теперь ваш сайт перенесен. Осталось дождаться полного обновления доменной зоны и можно выключать первый сервер. Не забудьте обновить SSL сертификаты, если их использовали.