понедельник, 28 мая 2018 г.

«ps» для мониторинга процессов Linux

ps (process state — состояние процессов) — это родная утилита Unix/Linux для просмотра информации о работе запущенных процессов в системе: она считывает эту информацию из виртуальных файлов в файловой системе /proc. Это одна из важных утилит для системного администрирования специально созданная для того, чтобы помочь вам понять, что происходит в системе Linux.
В этой статье мы рассмотрим 30 полезных примеров команды ps для мониторинга активных запущенных процессов в системе Linux.
Обратите внимание, что ps производит вывод с помощью строки заголовка, которая описывает смысл каждого столбца информации, вы можете найти значение всех меток на странице man ps.
Вывод списка всех процессов в текущей оболочке
1. Если вы запускаете команду ps без каких-либо аргументов, она отображает процессы для текущей оболочки.
$ ps

Вывод всех процессов в разных форматах
2. Отображение каждого активного процесса в системе Linux в общем формате (Unix/Linux).
$ ps -A

ИЛИ
$ ps -e

3. Отобразим все процессы в формате BSD.
$ ps au

ИЛИ
$ ps axu

4. Чтобы выполнить полноформатный листинг, добавьте флаг -f или -F.
$ ps -ef

ИЛИ
$ ps -eF

Отображение пользовательских запущенных процессов

5. Вы можете выбрать все процессы, принадлежащие вам (выполните команду ps, как root в этом случае), введите:
$ ps -x

6. Чтобы отобразить процессы пользователя с помощью реального идентификатора пользователя (RUID) или его имени, используйте флаг -U.
$ ps -fU tecmint

ИЛИ
$ ps -fU 1000

7. Чтобы выбрать процессы пользователя с помощью эффективного идентификатора пользователя (EUID) или его имени, используйте параметр -u.
$ ps -fu sedicomm

ИЛИ
$ ps -fu 1000

Вывод всех процессов, выполняемых как root (Real и Effecitve ID)

8. Приведенная ниже команда позволяет просматривать каждый процесс, выполняющийся с правами пользователя root (реальный и эффективный идентификатор) в пользовательском формате.
$ ps -U root -u root

Отображение групповых процессов
9. Если вы хотите вывести все процессы, принадлежащие определенной группе (идентификатор реальной группы (RGID или её имя), введите:
$ ps -fG apache

ИЛИ
$ ps -fG 48

10. Чтобы вывести все процессы, принадлежащие эффективному имени группы (или сеанса), введите:
$ ps -fg apache

Отобразим процессы по PID и PPID

11. Вы можете перечислить процессы с помощью PID следующим образом.
$ ps -fp 1178

12. Чтобы выбрать процессы с помощью PPID, введите:
$ ps -f --ppid 1154

13. Отсортировать, используя список PID.
$ ps -fp 2226,1154,1146

Процессы отображения TTY
14. Чтобы выбрать процессы с помощью tty, используйте флаг -t следующим образом.
$ ps -t pst/0
$ ps -t pst/1
$ ps -ft tty1

Вывести дерево процессов
15. Дерево процессов показывает, как процессы в системе связаны друг с другом; процессы, родительские процессы которых были завершены, принимаются init (или systemd).
$ ps -e -forest

16. Вы также можете вывести дерево процессов для данного процесса, подобного этому:
$ ps -f --forest -C sshd

ИЛИ
$ ps -ef --forest | grep -v grep | grep sshd

Вывод потоков процесса
17. Чтобы вывести все потоки процесса, используйте флаг -H, это покажет LWP (легковесный процесс), а также столбцы NLWP (количество легковесных процессов).
$ ps -fL -C httpd

Указание формата пользовательского вывода
Используя опции -o или -formatps позволяет создавать пользовательские форматы вывода, как показано ниже.
18. Чтобы перечислить все спецификаторы формата, пропишите флаг L.
$ ps L

19. Приведенная ниже команда позволяет вам просматривать PIDPPID, имя пользователя и команду процесса.
$ ps -eo pid, ppid, user, cmd

20. Ниже приведен еще один пример пользовательского формата вывода, показывающего группу файловой системы, приоритет nice, время начала и текущее время выполнения процесса.
$ ps -p 1154 -o pid, ppid, fgroup, ni, lstart, etime

21. Чтобы найти имя процесса, используя его PID.
$ ps -p 1154 -o comm=

Отображение родительских и дочерних процессов

22. Чтобы выбрать конкретный процесс по его имени, используйте флаг -C, это также отобразит все его дочерние процессы.
$ ps -C sshd

23. Найдите PID всех экземпляров процесса, которые полезны при написании скриптов, которые должны считывать PID из выходного файла std.
$ ps -C httpd -o pid=

24. Проверьте время выполнения процесса.
$ ps -eo comm,etime,user | grep httpd

На приведенном ниже рисунке показано, что служба HTTPD работает в течение 1 часа, 48 минут и 17 секунд.
Устранение неполадок производительности системы Linux
Если ваша система работает не так, как должна, например, если она необычно медлительна, вы можете найти некоторые неполадки в системе следующим образом:
26. Найдите процессы, использующие максимальное количество памяти/ЦП в Linux.
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head

ИЛИ
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head

27. Чтобы завершить Linux-процессы / неуправляемые приложения, которые потребляют много ресурсов процессора/памяти, выполните следующую команду:
Во-первых, найдите PID соответствующего процесса или приложения.
$ ps -A | grep -i stress

Затем используйте команду kill, чтобы немедленно завершить его.
$ kill -9 2583 2584

Вывод информация о безопасности
28. Выведите контекст безопасности (в частности, для SELinux):
$ ps -eM

ИЛИ
$ ps --context

29. Вы также можете отобразить информацию о безопасности в пользовательском формате с помощью этой команды:
$ ps -eo euser,ruser,suser,fuser,f,comm,label
 Выполнение мониторинга процессов в реальном времени с помощью утилиты Watch
30. Наконец, поскольку ps отображает статическую информацию, вы можете использовать утилиту watch для выполнения мониторинга процессов в реальном времени с выводом данных, отображаемым через каждую секунду, как в приведенной ниже команде.
$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head' 
Важноps показывает только статическую информацию, для просмотра часто обновляемого вывода вы можете использовать такие инструменты, как htoptop и glances: последние два — это инструмент мониторинга производительности системы Linux.

суббота, 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