Информация о дисковом носителе
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 {} \;
I. Install and Configure Sysstat
Install Sysstat Package
First, make sure the latest version of sar is available on your system. Install it using any one of the following methods depending on your distribution.
sudo apt-get install sysstat (or) yum install sysstat (or) rpm -ivh sysstat-10.0.0-1.i586.rpm
Install Sysstat from Source
Download the latest version from sysstat download page.
You can also use wget to download the
wget http://pagesperso-orange.fr/sebastien.godard/sysstat-10.0.0.tar.bz2 tar xvfj sysstat-10.0.0.tar.bz2 cd sysstat-10.0.0 ./configure --enable-install-cron
Note: Make sure to pass the option –enable-install-cron. This does the following automatically for you. If you don’t configure sysstat with this option, you have to do this ugly job yourself manually.
- Creates /etc/rc.d/init.d/sysstat
- Creates appropriate links from /etc/rc.d/rc*.d/ directories to /etc/rc.d/init.d/sysstat to start the sysstat automatically during Linux boot process.
- For example, /etc/rc.d/rc3.d/S01sysstat is linked automatically to /etc/rc.d/init.d/sysstat
After the ./configure, install it as shown below.
make make install
Note: This will install sar and other systat utilities under /usr/local/bin
Once installed, verify the sar version using “sar -V”. Version 10 is the current stable version of sysstat.
$ sar -V sysstat version 10.0.0 (C) Sebastien Godard (sysstat orange.fr)
Finally, make sure sar works. For example, the following gives the system CPU statistics 3 times (with 1 second interval).
$ sar 1 3 Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU) 01:27:32 PM CPU %user %nice %system %iowait %steal %idle 01:27:33 PM all 0.00 0.00 0.00 0.00 0.00 100.00 01:27:34 PM all 0.25 0.00 0.25 0.00 0.00 99.50 01:27:35 PM all 0.75 0.00 0.25 0.00 0.00 99.00 Average: all 0.33 0.00 0.17 0.00 0.00 99.50
Utilities part of Sysstat
Following are the other sysstat utilities.
- sar collects and displays ALL system activities statistics.
- sadc stands for “system activity data collector”. This is the sar backend tool that does the data collection.
- sa1 stores system activities in binary data file. sa1 depends on sadc for this purpose. sa1 runs from cron.
- sa2 creates daily summary of the collected statistics. sa2 runs from cron.
- sadf can generate sar report in CSV, XML, and various other formats. Use this to integrate sar data with other tools.
- iostat generates CPU, I/O statistics
- mpstat displays CPU statistics.
- pidstat reports statistics based on the process id (PID)
- nfsiostat displays NFS I/O statistics.
- cifsiostat generates CIFS statistics.
This article focuses on sysstat fundamentals and sar utility.
Collect the sar statistics using cron job – sa1 and sa2
Create sysstat file under /etc/cron.d directory that will collect the historical sar data.
# vi /etc/cron.d/sysstat */10 * * * * root /usr/local/lib/sa/sa1 1 1 53 23 * * * root /usr/local/lib/sa/sa2 -A
If you’ve installed sysstat from source, the default location of sa1 and sa2 is /usr/local/lib/sa. If you’ve installed using your distribution update method (for example: yum, up2date, or apt-get), this might be /usr/lib/sa/sa1 and /usr/lib/sa/sa2.
Note: To understand cron entries, read Linux Crontab: 15 Awesome Cron Job Examples.
/usr/local/lib/sa/sa1
- This runs every 10 minutes and collects sar data for historical reference.
- If you want to collect sar statistics every 5 minutes, change */10 to */5 in the above /etc/cron.d/sysstat file.
- This writes the data to /var/log/sa/saXX file. XX is the day of the month. saXX file is a binary file. You cannot view its content by opening it in a text editor.
- For example, If today is 26th day of the month, sa1 writes the sar data to /var/log/sa/sa26
- You can pass two parameters to sa1: interval (in seconds) and count.
- In the above crontab example: sa1 1 1 means that sa1 collects sar data 1 time with 1 second interval (for every 10 mins).
/usr/local/lib/sa/sa2
- This runs close to midnight (at 23:53) to create the daily summary report of the sar data.
- sa2 creates /var/log/sa/sarXX file (Note that this is different than saXX file that is created by sa1). This sarXX file created by sa2 is an ascii file that you can view it in a text editor.
- This will also remove saXX files that are older than a week. So, write a quick shell script that runs every week to copy the /var/log/sa/* files to some other directory to do historical sar data analysis.
Альтернативы
Альтернативные основные утилиты предоставляются следующими пакетами: BusyBox, Heirloom Toolchest, , AUR и AUR.
Альтернативы cd
zoxide — Умная команда cd, которая изучает ваши привычки и позволяет перемещаться повсюду буквально несколькими нажатиями клавиш.
Альтернативы cp
позволяет продолжить прерванную передачу файла, выводить состояние передачи, пропускать уже существующие файлы и проверять целостность итоговых файлов по контрольным суммам.
Альтернативы ls
broot — Новый способ просмотра дерева каталогов и перемещения по нему.
exa — Замена ls с поддержкой цветности, отображением дерева каталогов, интеграцией с git и другими возможностями.
lsd — Современный ls с большим набором цветов и замечательными иконками.
Альтернативы find
fd — Простая, быстрая и удобная альтернатива find. По умолчанию игнорирует скрытые файлы и файлы, указанные в .gitignore.
fuzzy-find — Fuzzy-завершение имён файлов при поиске.
mlocate — Объединение locate и updatedb.
plocate — Намного более быстрый locate.
Графические программы для поиска файлов перечислены в .
Альтернативы diff
Некоторые программы предоставляют сравнение по словам, которого нет в :
- git diff выполняет сравнение по словам с флагом ; с флагом работает также и с файлами вне рабочего дерева Git.
- dwdiff — Фронт-енд для diff со сравнением по словам; поддержка цветности.
GNU wdiff — Реализация GNU diff со сравнением по словам; нет поддержки цветности.
cwdiff — Обёртка для GNU wdiff с поддержкой цветности.
icdiff — diff с поддержкой цветности, написанный на Python. Название расшифровывается как «Improved color diff»; обычный режим работы diff также доступен.
См. также .
Альтернативы grep
mgrep — grep с многострочным поиском.
pdfgrep — Инструмент для поиска текста в PDF-файлах.
ripgrep-all — Поиск в текстовых файлах, а также в PDF, E-Book, документах Office, архивах zip и tar.gz.
Поиск кода
Следующие три инструмента предназначены для замены grep при поиске кода. По умолчанию используют рекурсивный поиск, пропускают двоичные файлы и учитывают .
ack — Написанная на Perl замена grep для программистов с большим деревом разнородных файлов с исходным кодом.
ripgrep (rg) — Инструмент поиска, который соединил в себе удобство ag и скорость grep.
The Silver Searcher (ag) — Инструмент поиска кода, схожий с Ack, но более быстрый.
Интерактивные фильтры
fzf — Универсальный fuzzy-поисковик на основе find для работы в командной строке.
fzy — Быстрый, простой поисковик текста с хорошим алгоритмом поиска.
peco — Упрощённый инструмент для интерактивной фильтрации.
percol — Добавляет интерактивную фильтрацию к традиционной концепции конвейера UNIX-оболочки.
skim — Написанный на Rust fuzzy-поисковик, похожий на fzf.
Основные
Некоторые важные утилиты, с которыми должен быть знаком пользователь Arch Linux. См. также .
Пакет | Утилита | Описание | Документация | Альтернативы |
---|---|---|---|---|
встроенные команды | cd | смена каталога | ||
GNU | ls | вывод содержимого каталога | , | |
cat | вывод содержимого файлов в stdout | , | ||
mkdir | создание каталога | |||
rmdir | удаление пустого каталога | |||
rm | удаление файлов и каталогов | shred | ||
cp | копирование файлов и каталогов | |||
mv | перемещение файлов и каталогов | |||
ln | создание жёстких и символических ссылок | |||
chown | изменение владельца и группы файла | |||
chmod | изменение прав доступа к файлу | |||
dd | преобразование и копирование файла | |||
df | вывод информации об использовании файловой системой дискового пространства | |||
GNU | tar | архиватор tar | архиваторы | |
GNU | less | постраничный просмотр в терминале | программы постраничного просмотра | |
GNU | find | поиск файлов и каталогов | ||
GNU | diff | построчное сравнение файлов | ||
GNU | grep | вывод строк, совпадающих с шаблоном | ||
GNU | sed | потоковый редактор | ||
GNU | awk | язык поиска и обработки шаблонов | , AUR | |
dmesg | вывод содержимого буфера ядра и управление им | журнал systemd | ||
lsblk | вывод информации о блочных устройствах | |||
монтирование файловой системы | ||||
размонтирование файловой системы | ||||
su | замена пользователя | sudo, | ||
kill | завершение процесса | , | ||
pgrep | поиск процесса по имени или атрибутам | |||
ps | вывод информации о процессах | , | ||
free | вывод информации о свободной/используемой памяти |
Предотвращение потери данных
, , и перенаправления ввода/вывода в оболочке удаляют или перезаписывают файлы молча, не уведомляя пользователя. С флагом команды , и будут запрашивать разрешение перед каждым удалением/перезаписью. Некоторые предпочитают использовать этот флаг по умолчанию, создав соответствующий . Тем не менее, такой подход чреват потенциальными проблемами, если в какой-то момент вы будете работать на другой системе или от другого пользователя, в которых подобный псевдоним отсутствует. Лучший способ защитить данные от случайного удаления — регулярно создавать .
Информация об оперативной памяти
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 необходима установка одноименной утилиты.
Второстепенные
Утилиты, которые также могут быть полезны.
Пакет | Утилита | Описание | Документация | Альтернативы |
---|---|---|---|---|
встроенные команды | создание или вывод списка псевдонимов | |||
type | определение типа команды | |||
time | вывод времени выполнения команды | |||
GNU | tee | считывание stdin и запись в stdout и файлы | ||
mktemp | создание временного файла или каталога | |||
cut | вывод отдельных частей строк | |||
tr | замена или удаление символов | |||
od | отображение файлов в восьмеричном и других форматах | , в vim | ||
sort | сортировка строк | |||
uniq | поиск или исключение повторяющихся строк | |||
comm | построчное сравнение двух отсортированных файлов | |||
head | вывод первых строк файла | |||
tail | вывод последних строк файла или отслеживание изменений в файле | |||
wc | вывод количества строк, слов и байтов | |||
GNU | strings | вывод содержащихся в двоичном файле текстовых строк | ||
GNU | iconv | конвертация кодировок символов | ||
file | определение типа файла |
Пакет содержит другие полезные инструменты вроде , которые не вошли в GNU coreutils.