Sysdig

Как Linux идентифицирует процессы?

Поскольку Linux является многопользовательской системой, разные пользователи могут запускать различные программы, при этом каждый запущенный экземпляр программы должен быть однозначно идентифицирован ядром.

Процессы запущенной программы имеют уникальный пятизначный номер — PID (сокр. от «Process IDentificator» — «идентификатор процесса»), а также PPID (сокр. от «Parent Process IDentificator» — «идентификатор родительского процесса»). В связи с этим процессы дополнительно разделяют на две группы:

   Родительские процессы — это процессы, которые во время своего выполнения создают другие процессы.

   Дочерние процессы — эти процессы, создаваемые другими процессами во время своего выполнения.

Прародителем всех процессов в системе является процесс init (от англ. «initialization») — первая программа, которая выполняется при загрузке Linux и управляет всеми другими процессами в системе. init запускается самим ядром и всегда имеет PID = 1, поэтому у него в принципе нет родительского процесса.

Примечание: В любой момент времени в системе не существует двух процессов с одинаковым PID. Вновь создаваемому процессу может быть назначен ранее использованный свободный PID.

Информация о системе Linux из консоли ssh

Очень часто возникает необходимость разузнать о системе или о компьютере ту или иную информацию. Это можно делать всего парой строк в терминале Ubuntu. В GUI Ubuntu имеется пакет hardinfo, который показывает достаточно множество информации о аппаратной и программной части компьютера. Но это GUI, какой можно использовать, если на компьютере установлена графичная оболочка, а графическая среда, например на серверной версии недостаёт. Да и сам компьютер может быть расположен где-нибудь так что десницами его не достать) В случае если хочется красивого окна, но компьютер далеко, можно пробросить окошко hardinfo чрез ssh:

Для приступила приведем утилиту lshw Для ее установки нужно завести в терминале: sudo apt-get install lshw После аппараты, для того чтобы узнать характеристики системы, довольно ввести в терминале команду sudo lshw

и на дессерт

Ограничение процессов

Управление процессами в Linux позволяет контролировать практически все. Вы уже видели что можно сделать, но можно еще больше. С помощью команды ulimit и конфигурационного файла /etc/security/limits.conf вы можете ограничить процессам доступ к системным ресурсам, таким как память, файлы и процессор. Например, вы можете ограничить память процесса Linux, количество файлов и т д.

Запись в файле имеет следующий вид:

<домен> <тип> <элемент> <значение>

  • домен — имя пользователя, группы или UID
  • тип — вид ограничений — soft или hard
  • элемент — ресурс который будет ограничен
  • значение — необходимый предел

Жесткие ограничения устанавливаются суперпользователем и не могут быть изменены обычными пользователями. Мягкие, soft ограничения могут меняться пользователями с помощью команды ulimit.

Рассмотрим основные ограничения, которые можно применить к процессам:

  • nofile — максимальное количество открытых файлов
  • as — максимальное количество оперативной памяти
  • stack — максимальный размер стека
  • cpu — максимальное процессорное время
  • nproc — максимальное количество ядер процессора
  • locks — количество заблокированных файлов
  • nice — максимальный приоритет процесса

Например, ограничим процессорное время для процессов пользователя sergiy:

Посмотреть ограничения для определенного процесса вы можете в папке proc:

Ограничения, измененные, таким образом вступят в силу после перезагрузки. Но мы можем и устанавливать ограничения для текущего командного интерпретатора и создаваемых им процессов с помощью команды ulimit.

Вот опции команды:

  • -S — мягкое ограничение
  • -H — жесткое ограничение
  • -a — вывести всю информацию
  • -f — максимальный размер создаваемых файлов
  • -n — максимальное количество открытых файлов
  • -s — максимальный размер стека
  • -t — максимальное количество процессорного времени
  • -u — максимальное количество запущенных процессов
  • -v — максимальный объем виртуальной памяти

Например, мы можем установить новое ограничение для количества открываемых файлов:

Теперь смотрим:

Установим лимит оперативной памяти:

Напоминаю, что это ограничение будет актуально для всех программ, выполняемых в этом терминале.

Информация о дисковом носителе

1. df

Команда выдает информацию о подмонтированных разделах и объемах, занимаемых ими:

df -h

Пример ответа:

Файловая система              Размер Использовано  Дост Использовано% Cмонтировано в
/dev/mapper/sys-root             25G          11G   15G           41% /
devtmpfs                        1,9G            0  1,9G            0% /dev
tmpfs                           1,9G         4,0K  1,9G            1% /dev/shm
tmpfs                           1,9G         193M  1,7G           11% /run
tmpfs                           1,9G            0  1,9G            0% /sys/fs/cgroup
/dev/sda1                      1014M         186M  829M           19% /boot

2. fdisk

Подробная информация о диске и его разделах:

fdisk /dev/sda -l

Ответ:

Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000d5e55

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    62914559    30407680   8e  Linux LVM

3. iotop

Команда позволяем увидеть загруженность дисковой системы. Утилиты может не быть в системе — сначала ее нужно установить.

а) на Ubuntu / Debian:

apt-get install iotop

б) на CentOS / Red Hat:

yum install iotop

После установки утилита запускается командой:

iotop

Вывод похож на top:

Total DISK READ :       0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd —swi…
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 %
    3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    5 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]
 1542 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 %
 …

4. smartmontools

Утилита позволяет получить SMART дисковых накопителей. По умолчанию, она не установлена — установка выполняется из репозитория.

а) на Ubuntu / Debian:

apt-get install smartmontools

б) на CentOS / Red Hat:

yum install smartmontools

После установки можно использовать:

smartctl -a /dev/sda

* в данном примере мы увидим полный тест для диска sda.

Если нам нужно посмотреть только общее состояние здоровья, то используем опцию H:

smartctl -H /dev/sda

Если мы хотим получить информацию по всем дискам, вводим команды по очереди для каждого или:

find /dev -name ‘sd’ -exec smartctl -a {} \;

Как получить информацию по PCI устройствам.

PCI устройства могут включать usb порты, графические карты, сетевые адаптеры.

Shell

lspci

00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 0b)
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)
00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 0b)
00:14.0 USB controller: Intel Corporation Lynx Point-LP USB xHCI HC (rev 04)
00:16.0 Communication controller: Intel Corporation Lynx Point-LP HECI #0 (rev 04)
00:1b.0 Audio device: Intel Corporation Lynx Point-LP HD Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 3 (rev e4)
00:1c.3 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 4 (rev e4)
00:1c.4 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 5 (rev e4)
00:1d.0 USB controller: Intel Corporation Lynx Point-LP USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation Lynx Point-LP LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation Lynx Point-LP SATA Controller 1 (rev 04)
00:1f.3 SMBus: Intel Corporation Lynx Point-LP SMBus Controller (rev 04)
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
02:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8723BE PCIe Wireless Network Adapter
03:00.0 3D controller: NVIDIA Corporation GM108M (rev a2)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

lspci
 

0000.0Host bridgeIntel Corporation Haswell-ULT DRAM Controller(rev0b)

0002.0VGA compatible controllerIntel Corporation Haswell-ULT Integrated Graphics Controller(rev0b)

0003.0Audio deviceIntel Corporation Haswell-ULT HD Audio Controller(rev0b)

0014.0USB controllerIntel Corporation Lynx Point-LPUSB xHCI HC(rev04)

0016.0Communication controllerIntel Corporation Lynx Point-LPHECI#0 (rev 04)

001b.0Audio deviceIntel Corporation Lynx Point-LPHD Audio Controller(rev04)

001c.0PCI bridgeIntel Corporation Lynx Point-LPPCI Express Root Port3(rev e4)

001c.3PCI bridgeIntel Corporation Lynx Point-LPPCI Express Root Port4(rev e4)

001c.4PCI bridgeIntel Corporation Lynx Point-LPPCI Express Root Port5(rev e4)

001d.0USB controllerIntel Corporation Lynx Point-LPUSB EHCI#1 (rev 04)

001f.0ISA bridgeIntel Corporation Lynx Point-LPLPC Controller(rev04)

001f.2SATA controllerIntel Corporation Lynx Point-LPSATA Controller1AHCI mode(rev04)

001f.3SMBusIntel Corporation Lynx Point-LPSMBus Controller(rev04)

0100.0Ethernet controllerRealtek Semiconductor Co.,Ltd.RTL8111/8168/8411PCI Express Gigabit Ethernet Controller(rev10)

0200.0Network controllerRealtek Semiconductor Co.,Ltd.RTL8723BE PCIe Wireless Network Adapter

0300.03DcontrollerNVIDIA Corporation GM108MGeForce840M(rev a2)

С опцией lspci -t вывод информации будет в виде дерева. С опцией lspci -v более детальная информация.

Как просмотреть информацию о системе linux

Что бы определить системное имя выполните команду

Shell

# uname

Linux

1
2
3

root@monitor~# uname

 
Linux

Что бы узнать имя компьютера в сети его hostname

Shell

# uname -n

monitor.com

1
2
3

root@monitor~# uname -n

monitor.com

Что бы узнать версию ядра

Shell

# uname -v

#1 SMP Tue Aug 6 07:04:06 CEST 2013

1
2
3

root@monitor~# uname -v

 
#1 SMP Tue Aug 6 07:04:06 CEST 2013

Что бы узнать релиз ядра

Shell

# uname -r

2.6.32-23-pve

1
2
3

root@monitor~# uname -r

2.6.32-23-pve

Что бы определить разрядность ОС

Shell

# uname -m

x86_64

1
2
3

root@monitor~# uname -m

 
x86_64

Всю эту информацию можно получить одной командой

Shell

# uname -a

Linux monitor.com 2.6.32-23-pve #1 SMP Tue Aug 6 07:04:06 CEST 2013 i686 i686 i386 GNU/Linux

1
2
3

root@monitor~# uname -a

Linux monitor.com2.6.32-23-pve#1 SMP Tue Aug 6 07:04:06 CEST 2013 i686 i686 i386 GNU/Linux

высокоуровневый

  1. Обычно — пакеты программного обеспечения, которые реализуют промежуточный слой между системной платформой и приложением. Эти пакеты предназначены для переноса уже испытанных протоколов коммуникации приложения на более новую архитектуру. Примером можно привести: DIPC, MPI и др. (мне не знакомы, честно говоря)

Итак. Подведем маленький итог:

  • В Linux есть процессы,
  • каждый процесс может запускать подпроцессы (нити),
  • создание нового процесса создается клонированием исходного,
  • прородителем всех процессов в системе является процесс init, запускаемый ядром системы при загрузке.
  • процессы взаимодействуют между собой по средствам можпроцессного взаимодействия:
    • каналы
    • сигналы
    • сокеты
    • разделяемая память
  • каждый процесс обладает свойствами (читай: обладает следующим контекстом):
    • PID — идентификатор процесса
    • PPID — идентификатор процесса, породившего данный
    • UID и GID — идентификаторы прав процесса (соответствует UID и GID  пользователя, от которого запущен процесс)
    • приоритет процесса
    • состояние процесса (выполнение, сон и т.п.)
    • так же у процесса есть таблица открытых (используемых) файлов

Далее поговорим о том, как посмотреть состояние процессов в Linux и о том, как же ими управлять.

Установка, удаление и обновление пакетов

Для установки программ в Linux используются менеджеры пакетов. Они разнятся от дистрибутива к дистрибутиву, поэтому команды для управления ими тоже отличаются. Рассмотрим наиболее популярные.

Debian/Ubuntu

  • sudo apt-get install название пакета — устанавливает программу на выбор. Главное знать, как она называется.
  • sudo apt remove название пакета — стирает с жесткого диска имеющийся в системе пакет.
  • sudo apt-get update — обновляет информацию о пакетах, имеющихся в системе, и тех, что хранятся в подключенных репозиториях.
  • sudo apt-upgrade — обновляет установленные пакеты до самых свежих версий, доступных в подключенных репозиториях.

Red Hat Linux/CentOS

  • sudo dnf install название пакета — устанавливает программу на выбор.
  • sudo dnf upgrade — обновляет установленные пакеты до самых свежих версий.
  • sudo dnf remove название пакета — стирает с жесткого диска имеющийся в системе пакет.

Как посмотреть версию системы при помощи systemd

systemd — менеджер системы и служб для Linux, совместимый со скриптами инициализации SysV и LSB. systemd обеспечивает возможности агрессивной параллелизации и много всего прочего. Кроме этого он включают в себя демон ведения журнала, утилиты для управления базовой конфигурацией системы (имя хоста, дата, языковой стандарт), ведение списка вошедших в систему пользователей, запущенных контейнеров и виртуальных машин, системных учётных записей, каталогов и параметров среды выполнения и демонов для управления базовой конфигурацией сети, синхронизации сетевого времени, пересылки журналов и разрешения имён.

$ hostnamectl
Static hostname: testcomp
Icon name: computer-desktop
Chassis: desktop
Machine ID: ac1ab0yh85b1be62bfa64a6578ae98f4
Boot ID: 6578a42948b32a67a040c16cf8ba0e
Operating System: Ubuntu 16.04.7 LTS
Kernel: Linux 4.4.0-201-generic
Architecture: x86-64

Команда hostnamectl выдает несколько больше информации.

LSB (Linux Standard Base)

Как видно в Ubuntu иногда выдается предупреждение No LSB modules are available. Если вы получаете такое сообщение  от lsb_release, то необходимо установить пакет lsb_core.

lsb-core — это пакет поддержки ядра Linux — LSB (Linux Standard Base). Стандартная база Linux (http://www.linuxbase.org/) — это стандартная базовая система, от которой могут зависеть сторонние приложения, написанные для Linux. Этот пакет обеспечивает реализацию ядра стандартной базы Linux на 32-разрядных архитектурах Intel x86, Intel ia64 (Itanium), IBM S390 и PowerPC с ядром Linux.

Будущие версии спецификации и этого пакета могут поддерживать LSB на дополнительных архитектурах и ядрах. Целью этого пакета является предоставление наилучшего текущего способа установки и запуска пакетов LSB в Linux. Установка из стандартного репозитория:

$ sudo apt-get install lsb-core

Как получить информацию о файловой системе Linux

Что бы получить информацию о системных разделах используйте команду fdisk

Shell

fdisk -l
Disk /dev/sda: 1000 GB, 1000204887016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xcee8ad92

Device Boot Start End Blocks Id System
/dev/sda1 1 1953425167 976762583+ ee GPT
Partition 1 does not start on physical sector boundary.

1
2
3
4
5
6
7
8
9
10
11

fdisk-l

Disk/dev/sda1000GB,1000204887016bytes

255heads,63sectors/track,121601cylinders,total1953525168sectors

Units=sectors of1*512=512bytes

Sector size(logical/physical)512bytes/4096bytes

I/Osize(minimum/optimal)4096bytes/4096bytes

Disk identifier0xcee8ad92

Device Boot      Start         EndBlocks   IdSystem

/dev/sda111953425167976762583+ee  GPT

Partition1does notstart on physical sector boundary.

Команды Linux, связанные со статистикой

Этот набор команд используется для просмотра различных видов статистики системы Linux.

19. mpstat

Команда Mpstat используется для показа статистики процессора и помогает отслеживать загрузку процессора в вашей системе. Это будет более полезно, если ваша система имеет несколько процессоров.

20. vmstat

Vmstat — это инструмент, который предоставляет отчеты о статистике виртуальной памяти. Он охватывает использование системной памяти, подкачки и процессоров в режиме реального времени.

По умолчанию vmstat работает следующим образом:

Команда Linux vmstat

21. iostat

Команда Iostat — это команда, используемая для мониторинга загрузки устройств ввода-вывода (I/O). Путем наблюдения за временем активности устройств по отношению к их средним скоростям передачи.

22. tcpdump

Tcpdump — это команда устранения неполадок в сети, которая также известна как анализатор пакетов, используется для захвата и отображения пакетов из сети. Для выполнения команды tcpdump вам требуется root или пользователь с правами sudo.

Когда вы используете tcpdump без какой-либо опции, он будет анализировать трафик на всех интерфейсах.

23. lsof

Команда Lsof расшифровывается как «Список открытых файлов». Чрезвычайно полезно узнать подробную информацию об открытых файлах и соответствующих процессах.

Чтобы просмотреть список файлов открытых определенным пользователем, используйте опцию .

Команда Lsof в системе Linux

Информация об оперативной памяти

1. Файл /proc/meminfo (Linux)

Команда:

cat /proc/meminfo

Пример ответа:

MemTotal:        8010284 kB
MemFree:         1058580 kB
MemAvailable:    2791616 kB
Buffers:            1884 kB
Cached:          1754092 kB
SwapCached:       122280 kB
Active:          4330296 kB
Inactive:        2006792 kB
Active(anon):    3623768 kB
Inactive(anon):   983120 kB
Active(file):     706528 kB
Inactive(file):  1023672 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       1048572 kB
SwapFree:         597684 kB
Dirty:                20 kB
Writeback:             0 kB
AnonPages:       4466532 kB
Mapped:            92808 kB
Shmem:             25776 kB
Slab:             408732 kB
SReclaimable:     308820 kB
SUnreclaim:        99912 kB
KernelStack:        7312 kB
PageTables:        23276 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     5053712 kB
Committed_AS:    3770324 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      159328 kB
VmallocChunk:   34359341052 kB
HardwareCorrupted:     0 kB
AnonHugePages:   3248128 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      257984 kB
DirectMap2M:     8130560 kB

* чаще всего, самое важное:

  • MemTotal — общий объем оперативной памяти.
  • MemFree — объем памяти, который не используется системой.
  • Buffers — память, которая в данным момент ожидает записи на диск.
  • Cached — объем, задействованный под кэш чтения с диска.
  • MemAvailable — объем памяти, доступной в распределители без необходимости обмена.
  • SwapTotal — объем файла подкачки.
  • SwapFree — свободный объем файла подкачки.

* Объем используемой памяти = MemTotal – MemFree — Cached — Buffers.

Для перевода килобайт в гигабайты можно воспользоваться онлайн калькулятором.

2. free (Linux)

Данная команда позволяет получить информацию об использовании памяти в удобной таблице. Для еще большего удобства, мы выведем ее с помощью дополнительного параметра -h:

free -m

Пример ответа:

              total        used        free      shared  buff/cache   available
Mem:           3,7G        568M        378M        193M        2,8G        2,6G
Swap:          4,0G         94M        3,9G

sysctl hw.physmem

Пример ответа:

hw.physmem: 2123677696

4. dmesg

Работает на BSD и Linux:

dmesg | grep memory

Итог:

real memory  = 2147483648 (2048 MB)
avail memory = 2042109952 (1947 MB)

5. Другие команды

Для получения информации по оперативной памяти также можно использовать команды:

vmstat -s

top

htop

* для htop необходима установка одноименной утилиты.

Типы процессов

В Linux существует три основных типа процессов:

   Процессы переднего плана (или «интерактивные процессы») — они инициализируются и управляются с помощью терминального сеанса. Другими словами, необходимым условием для запуска таких процессов является наличие пользователя, подключенного к системе; они не запускаются автоматически как часть системных функций/служб. Когда команда/процесс выполняется на переднем плане, то они полностью занимают запустивший их терминал. Вы не сможете использовать другие команды, т.к. приглашение оболочки будет недоступно, пока данный процесс выполняется на переднем плане.

   Фоновые процессы (или автоматические процессы») — это процессы, не подключенные к терминалу; они не ожидают пользовательского ввода данных. Таким образом, другие процессы могут выполняться параллельно с процессом, запущенным в фоновом режиме, поскольку им не нужно ждать его завершения.

   Демоны (англ. daemons») — это особый тип фоновых процессов, которые запускаются при старте системы и продолжают работать в виде службы; они не умирают. Такие процессы запускаются как системные задачи (службы). Однако при этом они могут управляться пользователем через init-процесс (о котором мы поговорим чуть позже). Например, к демонам относится служба электронных сообщений sendmail и sshd — служба, принимающая от клиентов запросы на соединения по протоколу ssh. За исключением процесса init и некоторых других, процессы демонов обычно имеют окончание в своем имени.

Системные команды Linux

Эти команды используются для просмотра информации и управления, связанной с системой Linux.

1. uname

Команда Uname используется в Linux для поиска информации об операционных системах. В Uname существует много опций, которые могут указывать имя ядра, версию ядра, тип процессора и имя хоста.

Следующая команда uname с опцией  отображает всю информацию об операционной системе.

2. uptime

Информация о том, как долго работает система Linux, отображается с помощью команды uptime. Информация о времени безотказной работы системы собирается из файла ‘/proc/uptime‘. Эта команда также отобразит среднюю нагрузку на систему.

Из следующей команды мы можем понять, что система работает в течение последних 36 минут.

Полное руководство команды Uptime

3. hostname

Вы можете отобразить имя хоста вашей машины, введя  в своем терминале. С помощью опции  вы можете просмотреть ip-адрес компьютера. А с помощью параметра  вы можете просмотреть доменное имя.

4. last

Команда last в Linux используется для определения того, кто последним вошел в систему на вашем сервере. Эта команда отображает список всех пользователей, вошедших (и вышедших) из «/var/log/wtmp » с момента создания файла.

Вам просто нужно ввести «last» в своем терминале.

5. date

В Linux команда date используется для проверки текущей даты и времени системы. Эта команда позволяет задать пользовательские форматы для дат.

Рекомендуем статью Команда Date (Дата) в Linux с примерами использования

Например, используя «date +%D«, вы можете просмотреть дату в формате «ММ/ДД/ГГ«.

6. cal

По умолчанию команда cal отображает календарь текущего месяца. С помощью опции  вы можете просмотреть календарь на весь год.

9. reboot

Команда reboot используется для перезагрузки системы Linux. Вы должны запустить эту команду из терминала с правами суперпользователя sudo.

10. shutdown

Команда shutdown используется для выключения или перезагрузки системы Linux. Эта команда позволяет планировать завершение работы и уведомлять пользователей сообщениями о выключении и перезагрузке.

По умолчанию компьютер (сервер) выключится через 1 минуту. Вы можете отменить расписание, выполнив команду:

Немедленное отключение тоже возможно, для этого используется опция «now»

SSD + HDD[править]

Команда Описание
systemctl status fstrim.timer Проверить включен ли TRIM
lsblk Посмотреть подключённые жёсткие диски
lsblk -o NAME,SIZE,UUID,TYPE,MOUNTPOINT Посмотреть информацию о дисках
cat /proc/partitions Посмотреть информацию о дисках
inxi -plo Информация о разбиении диска. разделы диска
inxi -h Посмотреть флаги разделов жесткого диска
mount Посмотреть информацию о подключенных устройствах и параметрах подключения
df -H Посмотреть список партиций, их точки монтирования, использование места, тип файловой системы
df -h Узнать размер свободного пространства на разделах диска
du -hs * 2>/dev/null | sort -h Отсортировать файлы по размеру
fdisk -l Все партиции, названия устройств и геометрия hdd
hdparm -iv /dev/sda Посмотреть идентификационную информацию, собранной во время загрузки ОС
hdparm -Tv /dev/sda Измерить время чтения из кэша, для верности показателей — повторить 2-3 раза на неактивном диске
hdparm -Tt /dev/sda Сравнение времени чтения устройства. Полная статистика. Для получения значимых результатов эту операцию следует повторить 2-3 раза в неактивной системе
hddtemp -uC /dev/sda Отображение температуры в Цельсиях для винчестера /dev/sda (установочный пакет hddtemp)
hdparm -I /dev/sda Информация о диске (модель, прошивка, атрибуты и пр)
smartctl -d ata -a -i /dev/sda Информация о диске (модель, прошивка, атрибуты и пр)
smartctl -a /dev/sda Вывод SMART информация для винчестера /dev/sda (необходим пакет smartmontools)
baobab Графическая утилита для анализа места на жестком диске в GNOME
ncdu / Консольная утилита для анализа места на жестком диске
ls -lh /var/log/ Посмотреть содержимое папки с выводом в мегабайтах, килобайтах и пр.  
parted /dev/sdX print Информация о жестком диске — sdX, X заменить на букву диска — a,b,c
gdisk -l /dev/sda Покажет раздел загрузчика с кодом раздела EF00
tree -L 3 /boot Вывод структуры ввиде дерева
df -h | awk ‘$NF==»/»{printf «Disk Usage: %d/%dGB (%s)\n», $3,$2,$5}’ Расчет использования жесткого диска
e2fsck -cfpv /dev/sda1 для восстановления битых секторов жесткого диска и подождать несколько часов
whdd Консольная Ncurses утилита для диагностики жёстких дисков и восстановления данных с нихДиагностика жесткого диска и восстановление данных
find -type f -printf «%k\t%p\n» | sort -n | tail Найти десять самых больших файлов. Размер в блоках по килобайту
ls -1 /dev/sd? Получить список устройств
fdisk -l /dev/sda Посмотреть какие разделы есть на диске «sda»
Узнать, что переполняет диск
konqueror с плагинами Свободный веб-браузер и файловый менеджер, являющийся ключевым компонентом графической среды KDE
du <путь> sort -n. В альте можно отключить резервное копирование (bacula-fd) и почистить /var
gparted Графическая утилита для работы с дисками и разделами
filelight Графическое представление использования дисков/флешек
baobab Графическое представление использования дисков/флешек в Gnome
ncdu Консольный анализатор использования дисков/флешек
Жёсткие диски имеют особенные названия. В зависимости от интерфейса, через который подключён жёсткий диск, название может начинаться на:
sd — устройство, подключённое по SCSI;
hd — устройство ATA;
vd — виртуальное устройство;
mmcblk — обозначаются флешки, подключённые через картридер;
В наше время большинство блочных устройств Linux подключаются через интерфейс SCSI. Сюда входят жёсткие диски, USB-флешки, даже ATA-диски теперь тоже подключаются к SCSI через специальный переходник.
Поэтому в большинстве случаев вы будете иметь дело именно с дисками sd. Третья буква в имени диска означает его порядковый номер в системе. Используется алфавитная система.
Например sda — первый диск, sdb — второй диск, sdc — третий и так далее. Дальше следует цифра — это номер раздела на диске — sda1, sda2.

Команды Linux, Связанные С Передачей Файлов

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

87. scp

SCP — это программа безопасного копирования для передачи файлов или каталогов между хостами Linux в сети. SCP использует протокол ssh для передачи данных.

Пример того как локальный файл ‘examples.txt» скопировать на удаленный хост.

88. rsync

Rsync синхронизирует файлы и каталоги между локальными и удаленными машинами. Он может рекурсивно копировать файлы и каталоги, копировать символические ссылки, сохранять (разрешения, группу, время изменения и принадлежность) идентификатор файла.

Команды Linux окружения пользователя

29. su / sudo

Su и sudo — это два способа выполнить одну и ту же задачу: запустить программу от имени другого пользователя. В зависимости от вашего дистрибутива вы, наверное, используете одну или другую. Но работают обе. Разница в том, что su переключает вас на другого пользователя, а sudo только выполняет команду от его имени. Поэтому использование sudo будет наиболее безопасным вариантом работы. Я писал про права суперпользователя в этой статье.

30. date

В отличие от time, делает именно то, чего вы от неё и ожидаете: выводит дату и время в стандартный вывод. Его можно форматировать в зависимости от ваших потребностей: вывести год, месяц, день, установить 12-ти или 24-ти часовой формат, получить наносекунды или номер недели. Например, date +»%j %V», выведет день в году и номер недели в формате ISO.

31. alias

Команда создаёт синонимы для других команд Linux. То есть вы можете делать новые команды или группы команд, а также переименовывать существующие. Это очень удобно для сокращения длинных команд, которые вы часто используете, или создания более понятных имен для команд, которые вы используете нечасто и не можете запомнить. Здесь собрано несколько полезных алиасов.

32. uname

Выводит некую основную информацию о системе. Без параметров она не покажет ничего полезного, кроме строчки Linux, но, если задать параметр -a (All), можно получить информацию о ядре, имени хоста и узнать архитектуру процессора.

33. uptime

Сообщает вам время работы системы. Не очень существенная информация, но может быть полезна для случайных вычислений или просто ради интереса, чтобы узнать, как давно был перезагружен сервер.

34. sleep

Вам, наверное, интересно как же её можно использовать. Даже не учитывая Bash-скриптинг, у неё есть свои преимущества. Например, если вы хотите выключить компьютер через определенный промежуток времени или использовать в качестве импровизированной тревоги.

Как получить информацию о CPU

Что бы получить информацию о CPU можно воспользоваться командами

Shell

lscpu
или
cat /proc/cpuinfo

1
2
3

lscpu
или

cat/proc/cpuinfo

Результат команды будет следующим

Shell

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz
stepping : 9
cpu MHz : 3292.582
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms
bogomips : 6585.16
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

processor

vendor_idGenuineIntel

cpu family6

model58

model nameIntel(R)Xeon(R)CPU E3-1230V2@3.30GHz

stepping9

cpu MHz3292.582

cache size8192KB

physical id

siblings8

core id

cpu cores4

apicid

initial apicid

fpuyes

fpu_exceptionyes

cpuid level13

wpyes

flagsfpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms

bogomips6585.16

clflush size64

cache_alignment64

address sizes36bits physical,48bits virtual

power management

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector