Содержание :
- SSH.
- Узнать информацию о машине и ОС.
- Оборудование.
- Запуск нескольких команд за раз.
- Запуск исполняемых bash-скриптов.
- Структура каталогов Debian.
SSH.
Генерация ключей:
ssh-keygen
Введите путь файла, в который будут помещены ключи. Каталог по умолчанию указан в скобках, в примере /домашний_каталог/.ssh/id_rsa. Если хотите оставить расположение по умолчанию, нажмите Enter.
Пароль (passphrase) используется для ограничения доступа к закрытому ключу. Пароль усложнит использование ключа третьими лицами в случае утраты. Если не хотите использовать секретную фразу, нажмите Enter без заполнения строки.

Скопируйте открытый ключ на сервер в файл /домашний_каталог/.ssh/authorized_keys. Одной строкой:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Забираем приватный ключ. Вводим команду (если создавали как в примере):
cat ~/.ssh/id_rsa
Спецсимволы, которые рекомендуется использовать в паролях:
“! » # $ % & ‘ ( ) * + , — . / : ; < = > ? @ [ \ ] ^ _` { | }”
/etc/ssh/sshd_config — конфиг демона SSH.
Port — смена порта, где располагается служба по умолчанию.
PubkeyAuthentication yes — включение авторизации по ssh-ключам.
PermitEmptyPasswords no — запрет использования пустых паролей.
PasswordAuthentication no — запрет авторизации по паролю в принципе. (не меняйте, пока не убедитесь, что авторизация по SSH-ключам работает)
Опционально
ListenAddress 188.120.242.XXX — указываем конкретный IP, на котором будет располагаться служба. По умолчанию на всех.
PermitRootLogin no — запрет авторизации пользователя root.
AllowUsers User1 User2 — разрешение на подключение конкретных пользователей.
Узнать информацию о машине и ОС.
Версии ядро Linux вашего сервера, можно с помощью команды:
uname -a
- имя ядра;
- имя сервера (hostname);
- релиз ядра;
- версию ядра;
- тип процессора;
- вид операционной системы.
Альтернативный способ — посмотреть содержимое файла /proc/version:
cat /proc/version
Узнать версию непосредственно установленного дистрибутива можно из конфигурационных файлов системы:
cat /etc/os-release

Оборудование.
Краткую информацию об оборудовании можно посмотреть следующим образом:
lshw -short

Посмотреть диск и его разделы так же просто:
lsblk -a
Если команды lshw, lscpu, lsblk вам недоступны (в некоторых системах они не установлены по умолчанию), можно обратиться напрямую к файлам, из которых они собирают информацию — они хранятся в директории /proc.
Для вывода информации о дисках можно использовать следующую утилиту:
fdisk -l
Запуск нескольких команд за раз.
если нам нужно выполнить несколько команд последовательно, не обязательно вводить каждую по отдельности. Можно перечислить их через точку с запятой:
cat /etc/os-release ; lshw -short
Если нам нужно выполнить список зависимых друг от друга команд, для их разделения нужно использовать оператор &&. В таком случае следующая команда в списке будет выполнена только при условии успешного выполнения предыдущей.
Оператор || действует наоборот — запускает следующую операцию при условии, что первая не выполнилась или завершилась с ошибкой.
Чтобы запустить команду в фоновом режиме, достаточно добавить в конце знак «&».
Вывести список команд, запущенных в фоновом режиме, можно с помощью команды
jobs -l
Запуск исполняемых bash-скриптов.
Запустить скрипт. Если вы находитесь в той же директории, где лежит скрипт, достаточно вызвать его по имени:
./script.sh
В некоторых случаях нужно использовать команду sh либо указать путь к исполняемому файлу командной оболочки:
sh ./script.sh
либо
/bin/bash ./script.sh
Если вы находитесь в другой директории, для запуска нужно указать полный путь к скрипту.
Структура каталогов Debian.
Debian GNU/Linux придерживается стандарта Filesystem Hierarchy Standard для каталогов и имён файлов. Этот стандарт позволяет пользователям и программному обеспечению быть уверенным в расположении файлов и каталогов. Уровень корневого каталога представляется просто косой чертой /
. На корневом уровне, все системы Debian содержат следующие каталоги:
- bin — необходимые исполняемые файлы.
- boot — статичные файлы системного загрузчика.
- dev — файлы устройств.
- etc — настройки системы данной машины.
- home — домашние каталоги пользователей.
- lib — необходимые библиотеки общего пользования и модули ядра.
- media — содержит точки монтирования для съёмных носителей.
- mnt — точка монтирования для временно монтируемой файловой системы.
- proc — виртуальный каталог для системной информации.
- root — домашний каталог суперпользователя.
- run — изменяемые данные времени выполнения.
- sbin — необходимые системные исполняемые файлы.
- sys — виртуальный каталог для системной информации.
- tmp — временные файлы.
- usr — вторичная иерархия.
- var — изменяемые данные.
- srv — Данные сервисов, предоставляемых системой.
- opt — дополнительное программное обеспечение.
На корневом разделе /
всегда физически должны находиться каталоги /etc
, /bin
, /sbin
, /lib
и /dev
, иначе будет невозможна загрузка системы. Обычно, для корневого раздела требуется 150–310 МБ.
В /usr
хранятся: все пользовательские программы (/usr/bin
) , библиотеки (/usr/lib
), документация (/usr/share/doc
) и так далее. Этой части файловой системы требуется много места. Вы должны выделить как минимум 500 МБ дискового пространства. Объём этого раздела зависит от числа и типа пакетов, планируемых к установке. Для рабочих станций общего назначения или серверов цифра может вырасти до 4–6 ГБ.
Каталог /var
содержит: все изменяющиеся данные типа новостных статей, сообщений электронной почты, веб-сайтов, баз данных, кэша системы управления пакетами и т.д.
УПРАВЛЕНИЕ СЛУЖБАМИ LINUX.
systemctl — основной инструмент управления systemd.
Запуск, останов и просмотр статуса какой-либо службы происходит посредством команд:
Примечание: в debian 10 команда без d, просто
cron
systemctl start crond
systemctl stop crond
systemctl status crond
Перезапуск командой
systemctl restart crond
Для добавления сервиса в автозагрузку используется
systemctl enable crond
Чтобы убрать приложение из автозапуска, соответственно
systemctl disable crond
Можно также “замаскировать” сервис — то есть, лишить модуль возможности запускаться.
systemctl mask crond
Посмотреть дерево зависимостей — от каких процессов зависит cron.
systemctl list-dependencies crond
Список всех имеющихся модулей в системе покажет команда systemctl list-units
Процессы.
top
htop
ps

Основные процессы Linux
[kthreadd] — PID 2, так называемый “мастер потоков” — это мастер-процесс, создающий процессы для управления аппаратной составляющей. В целом, большинство процессов ниже являются порождениями этого процесса, он как главный босс, раздающий работу и кричащий, что делать.
[rcu_gp] — Read-copy update. Специальный механизм синхронизации данных, позволяющий обрабатывать данные в несколько потоков. Нужен для многопоточной работы с данными.
[kworker/(u)X:X(H)] — процессы которые помогают ядру обрабатывать запросы. Таких процессов может быть много (в зависимости от нагрузки на ядро, чем больше запросов на выделение прерывания, чем больше таймеров и системных вызовов, тем больше процессов по работе в пространстве ядра).
[mm_percpu_wq] — процесс для управления памятью для каждого ядра.
[ksoftirqd/0] — на каждое процессорное ядро ядром Linux порождается один такой процесс, который необходим как для обработки аппаратных прерываний от установленного оборудования, прерываний от установленного программного обеспечения так и обработки исключений возникающих в процессе работы операционной системы. Посмотреть статистику можно в файле /proc/interrupts
[rcu_sched] — дополнительный процесс для корректной работы RCU (это процесс-планировщик).
[rcu_bh] — дополнительный процесс для корректной работы RCU, родственный rcu_sched, отвечает за так называемые “грейс периоды”, они же интервалы времени для завершения RCU-заданий (если простыми словами).
[migration/0] — процесс, которые распределяет другие процессы по ядрам. Один процесс на одно ядро.
[cpuhp/0] — процесс, создающийся 1 на 1 ядро, отвечающий за физическое добавление/удаление CPU в/из систем.
[kdevtmpfs] — заполняет и обслуживает дерево устройств.
[netns] — управляет сетью (фактически оно управляет пространством имен для сетей)
[khungtaskd] — процесс, который каждые две (чаще всего) минуты ищет зависшие задания.
[oom_reaper] — процесс, отвечающий за “убийство” процесса, который потребляет больше всего памяти, если ОЗУ на компьютере заканчивается.
[writeback] — процесс который записывает отложенные в кэше контроллера накопителя данные на сам накопитель. Инициировать можно командой sync
[kcompactd0] — отвечает за так называемое уплотнение памяти (работает по 1 процессу на 1 ядро, обычно — каждые 15 секунд).
[khugepaged] — отслеживает эффективность использование “huge pages” виртуальной памяти.
[crypto] — предоставляет API к крипто-модулю ядра.
[kintegrityd] — проверяет целостность блочных устройств с помощью записи/чтения с/на этих устройств/ах.
[kblockd] — процесс ищет перегрузки в I/O (операциях ввода-вывода).
[edac-poller] — ищет ошибки в памяти и устраняет их.
[devfreq_wq] — процесс разрешает повторное использование так называемых “рабочих очередей” (workqueues).
[watchdogd] — средство наблюдения за нормальной работой системы, и если происходит какой-то сбой, то данный процесс запускает сброс (reset) системы с целью возобновить нормальное функционирование.
[kswapd0] — древняя, но почтенная система управления виртуальной памятью.
[kthrotld] — контролирует пропускную способность посредством “удушения” запросов в соответствии с приоритетами.
[ipv6_addrconf] — отвечает за конфигурацию очередей IPv6.
[kworker/u2:1-events_unbound] — тот же процесс, что и kworker.
[kstrp] — так называемый “парсер потоков”, он необходим для разбора и анализа сообщений на прикладном уровне.
[ata_sff] — процесс для использования устаревших ide/pata устройств.
[scsi_eh_0] — процесс обрабатывает ошибки, которые могут появляться при подключении дисков, определяемых как scsi-устройства.
[jbd2/vda1-8] — процесс, отвечающий за обновление журнала файловой системы.
[ttm_swap] — процесс, отвечающий за использование GPU памяти.
Сетевой интерфейс.
Посмотреть сетевые интерфейсов
ip link
Настройка ip-адреса для Debian/Ubuntu:
Откройте файл /etc/network/interfaces и найдите следующие строки:
iface eth0 inet static(dhcp)
Далее проверяем или записываем, если этих строк нет строки:
address 10.10.10.10
— здесь указывается основной Ipv4-адресnetmask 255.255.255.0
— указывается маскаgateway 10.10.10.1
— шлюз
pointopoint
— в случае, если в сети, где расположен ваш сервер используется технология VPU.
auto eth0:1
— число после двоеточия означает порядковый номер дополнительного адреса, начиная с 0, еще эти интерфейсы называют алиасами, или псевдонимами по-русски.
iface eth0:N inet static
address 10.10.10.11
netmask 255.255.255.255
После изменений, для применения изменений можно выполнить команду
systemctl restart networking
Примененные изменения можем увидеть командой ip a
Теперь проверим, указан ли шлюз по умолчанию. Команда ip r
покажет имеющиеся маршруты.
Утилиты.
Утилита traceroute, установка Debian/Ubuntu:
apt-get install traceroute
Утилита mtr, установка Debian/Ubuntu:
apt install mtr-tiny
Менеджер пакетов.
Полезные команды при работе с пакетными менеджерами apt, которые могут пригодиться:
- apt remove – удалить пакет без измененных вами конфигов.
- apt purge – полностью удалить пакет, вместе со всеми его конфигурационными файлами;
- apt autoremove – очистить ненужные пакеты;
- apt autoclean – очистка кэша пакетов;
- apt upgrade – обновить пакет до актуальной версии, если пакет не указан будет обновлено всё.
- apt list выводит список доступных пакетов, а apt list —installed — установленных
- apt search cowsay – поиск пакетов с именем, которое включает ключевое слово “cowsay”;
- apt show cowsay – посмотреть информацию о пакете с именем “cowsay”;;
- apt edit-sources – открыть с настройками репозиториев в текстовом редакторе.
- apt build-dep – установить зависимости необходимые для сборки выбранного пакета;
- apt-cache depends — посмотреть зависимые пакеты.
Диагностика дисков, памяти.
w — самая короткая команда в Linux. Она представляет собой комбинацию команд who, uptime и ps -a.
Load Average — это средняя величина системной нагрузки, показывающая количество процессов, находящихся в обработке и ожидающих своей очереди.
если:
> LA = 0.0 — ваша система в состоянии “idle” — простаивает;
> LA 1 минуты выше, чем величина 5 или 15 минут, то нагрузка растёт;
> LA 1 минуты ниже, чем величина 5 или 15 минут, то нагрузка падает;
Если величина этого показателя выше количества ядер процессора, то вы можете испытывать проблемы с производительностью, задачи копятся в очереди и процессор не успевает их обработать.
Что показывает команда TOP:
Tasks: 64 total, 1 running, 63 sleeping, 0 stopped, 0 zombie
Данная строка показывает общее количество процессов, сколько из них запущено, сколько находится в спящем режиме, сколько процессов остановлено, а также количество зомби процессов — процессы, которые закончили свое выполнение, имеется ошибка в работе процессов
%Cpu(s): 5,9 us, 5,9 sy, 0,0 ni, 88,2 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
Данная строка рассказывает нам о состоянии процессора, на что затрачено 100% процессорного времени.
us -(%) действия в пользовательском пространстве;
sy — (%)затраченного на действия в пространстве ядра;
ni — (%) затраченного на процессы с низким приоритетом
id — процент (%) затраченного на простаивание — какое количество времени процессор делает ничего
wa — процент (%) затраченного на ожидание дисковых операций..
hi — процент (%) процессорного времени, затраченного на обработку аппаратных прерываний;
si — процент (%) процессорного времени, затраченного на обработку прерываний ПО;
st — время в вынужденном ожидании виртуального CPU, пока гипервизор обслуживает другой процессор.
В следующей строке блок посвященный оперативной памяти.
MiB Mem : 1995,2 total, 1527,5 free, 60,7 used, 407,0 buff/cache
Информация о памяти:
total — всего памяти;
free — доступно незамедлительно;
used — используется в данный момент;fr
buff/cache — сумма буферов и кэша (фактически это можно считать доступной свободной памятью, так как чаще всего эта величина содержит в себе счётчик памяти, требуемой для информации, которая уже записана на диск или скоро будет записана.
MiB Swap: 0,0 total, 0,0 free, 0,0 used. 1771,6 avail Mem
Информация о свап-памяти: всего, свободно, использовано, доступно.
Также информацию о доступной ОЗУ покажет free -m.
Варианты TOP
- iftop
- iotop
- atop -r
- atopsar -r
- htop