LFCA: Как отслеживать основные метрики системы в Linux – Часть 8

Эта статья является Частью 8 серии LFCA, и здесь вы познакомитесь с общими командами администрирования системы для мониторинга основных системных метрик и планирования административных задач в системе Linux.

Отслеживание производительности вашей системы – одна из ключевых ролей, которую вам предстоит выполнить в качестве системного администратора. Конечно, существует достаточно инструментов мониторинга с открытым исходным кодом, таких как Grafana и Nagios, для мониторинга системных метрик.

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

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

1. Команда uptime

Команда uptime показывает время работы системы с момента ее включения. Без каких-либо опций команды она предоставляет текущее время, время работы системы, залогиненных пользователей и среднюю нагрузку.

$ uptime

С опцией -s вы получаете дату системы и время включения системы.

$ uptime -s

Используйте опцию -p, чтобы получить только время работы

$ uptime -p
Check Linux System Uptime

2. Команда free

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

$ free -h
Check Linux Memory Usage

3. Команда top

Команда top выполняет две функции: она предоставляет сводку метрик системы в реальном времени и отображает текущие запущенные процессы, управляемые ядром Linux.

Помимо отображения запущенных процессов, команда top объединяет вывод, предоставленный командами uptime и free, который находится в самом верху.

$ top
Check Linux Running Processes

Улучшением команды top является утилита htop, которая отображает статистику в интуитивно понятном и удобочитаемом формате.

На Linux вы можете установить htop с помощью команды:

$ sudo apt install htop  [On Debian-based]
$ sudo dnf install htop  [On RHEL-based]

Для запуска htop просто выполните команду:

$ htop
htop – an interactive process viewer

4. Команда df

Мы ранее обсуждали утилиту df (disk-free) в основных командах Linux. Команда df предоставляет информацию о использовании жесткого диска для каждой файловой системы. Используйте флаг -Th, чтобы выводить информацию в удобочитаемом формате.

$ df -Th
Check Linux Disk Usage

5. Просмотр информации о процессоре

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

$ cat /proc/cpuinfo
Check Linux Cpu Info

Автоматизация задач администрирования системы

Планирование задач для выполнения в заданное время – один из основных навыков, который должен иметь любой системный администратор. Вам может понадобиться планировать административные задачи, которые должны выполняться регулярно, такие как резервное копирование и периодическая перезагрузка.

Cron – это временной планировщик, который помогает автоматизировать задачи. Установка cron включает в себя демон cron и набор таблиц, из которых он считывает свою конфигурацию, называемую crontab. Crontab описывает задачи, которые должны быть выполнены.

Чтобы создать задание cron, мы должны сначала понять его архитектуру. Задание cron состоит из пяти полей, за которыми следует команда или скрипт для выполнения. Вот диаграмматическое представление различных полей задания cron.

Cron Architecture

Давайте рассмотрим некоторые примеры cron и их интерпретацию:

0	12	*	*	*   <command>   Executes a task daily  at noon
30	06	*	*	*   <command>   Executes a task daily  at 6:30 am 
30      *	*	*	*   <command>   Executes a task  every 30 minutes
0	0	*	*	*   <command>   Executes a task  at midnight 
30	06	*	* 	5   <command>  Executes a task at 6:30 am every Fri
*	* 	*	* 	*   <command>  Executes a task every minute
0	0	1	* 	*   <command>  Executes a task at midnight on the first day of every month
0	3 	*	* 	Mon-fri   <command> Executes a task at 3:00am on every day of the week from Monday to Friday.

Давайте теперь создадим задание cron.

Сначала мы создадим скрипт резервного копирования, который будет резервировать нашу папку Загрузки в /home/tecmint/Downloads в директорию /home/documents.

Используя редактор vim, мы создадим и откроем файл скрипта, как показано.

$ vim backup.sh

Начнем с шебанга в самом верху, чтобы отметить начало shell-скрипта

#!/bin/bash

Команда для резервного копирования папок директории показана ниже.

tar -cvf /home/tecmint/Documents/downloads.tar.gz /home/tecmint/Downloads
File Backup Script

Первый путь представляет полный путь к файлу резервной копии, который является downloads.tar.gz, в то время как второй путь указывает на путь к директории, которая будет резервироваться.

Сохраните файл, нажав ESC, затем введите :wq и нажмите ENTER.

Затем назначьте права на выполнение резервному скрипту. Это необходимо, чтобы утилита cron могла выполнить скрипт.

$ chmod +x backup.sh

Чтобы создать задание cron для выполнения скрипта, выполните следующую команду:

$ crontab -e

Мы определим задание cron для выполнения скрипта резервного копирования каждый день в 14:30 часов следующим образом

30 14 * * * /home/tecmint/backup.sh
Create Cron Job in Linux

Сохраните файл, нажав ESC, затем введите :wq и нажмите ENTER. После выхода из файла вы получите подсказку crontab: installing a new crontab, означающую, что задание cron было инициализировано.

Cron Job Added Succesfully

Чтобы перечислить текущие задания cron, выполните команду:

$ crontab -l
List Cron Jobs

Таким образом, для нашей задачи резервного копирования, задание cron успешно создало сжатый файл директории ‘Downloads’ в директории ‘Documents’ ровно в 14:30 часов.

$ ls Documents/
Verify Backup

Если вы больше не хотите запускать задание cron, вы можете удалить его с помощью команды:

$ crontab -r
Заключение

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

Source:
https://www.tecmint.com/monitor-basic-system-metrics-in-linux/