Debian, шпаргалка администратора.

Содержание :

  • 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

Если команды lshwlscpulsblk вам недоступны (в некоторых системах они не установлены по умолчанию), можно обратиться напрямую к файлам, из которых они собирают информацию — они хранятся в директории /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
ps -Fe

Основные процессы 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. Она представляет собой комбинацию команд whouptime и 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

Ошибка в тексте? Выделите её и нажмите «Ctrl + Enter»