Просмотрите пользователей, которые вошли в систему в течение определенного периода времени, используя последнее.

Вопрос или проблема

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

Как мне задать временной диапазон (как в моем примере) в команде last?

Я также думаю, что команда uniq будет хорошим способом устранить дублирующихся пользователей, которые вошли в систему. Кроме того, команда sort кажется хорошим способом отсортировать список, как я и хочу сделать.

Если вы используете last из util-linux, вы можете указать временные диапазоны с помощью -s (--since) и -t (--until). Проверьте раздел ФОРМАТЫ ВРЕМЕНИ на странице man для действительных спецификаций времени. Я приведу несколько действительных примеров:

last -s "-1 неделя"
last -s "-3 дня"
last -s "2020-09-01"

Ответ или решение

Для извлечения списка пользователей, которые вошли в систему в определенный период времени с использованием команды last, необходимо использовать ключи -s (или --since) и -t (или --until). Эти параметры позволяют вам указать начальную и конечную даты, благодаря чему вы сможете получить детализированную информацию о входах пользователей.

Как использовать команду last для получения списка пользователей за определенный период времени

Шаг 1: Открывание терминала

Первым шагом вам необходимо открыть терминал в вашей операционной системе.

Шаг 2: Определение временного диапазона

Рассмотрим ваш запрос: вам нужно получить информацию о входах пользователей с начала сентября. Для этого используйте следующую команду:

last -s "2023-09-01" -t "2023-09-30"

В этой команде:

  • -s "2023-09-01" указывает, что мы начинаем поиск с 1 сентября 2023 года.
  • -t "2023-09-30" ограничивает поиск до конца сентября.

Шаг 3: Удаление дубликатов и сортировка списка

Если вам необходимо устранить дубликаты пользователей и отсортировать список, вы можете использовать комбинацию команд uniq и sort. Вот как это можно реализовать:

last -s "2023-09-01" -t "2023-09-30" | awk '{print $1}' | sort | uniq

Объяснение команды:

  1. last -s "2023-09-01" -t "2023-09-30" — получает все записи входа пользователей.
  2. awk '{print $1}' — извлекает только имена пользователей из полученного списка.
  3. sort — сортирует данные по алфавиту.
  4. uniq — устраняет дубликаты, оставляя только уникальные имена пользователей.

Примечания

  • Обратите внимание, что формат времени для параметров -s и -t позволяет использовать различные стили записи, включая относительные и абсолютные временные указания. Например, last -s "-1 month" или last -s "2023-09-01".
  • Чтобы ознакомиться с более подробной информацией о параметрах last, вы можете обратиться к справочной странице, введя команду man last, где будут указаны все доступные опции.

Заключение

Использование команды last с определенными временными параметрами позволяет эффективно мониторить активности пользователей в системе. Применяя комбинацию других утилит, таких как sort и uniq, вы можете получить хорошо обрабатываемую и аккуратно представленную информацию. Надеюсь, этот ответ поможет вам в вашей задаче, и вы сможете легко извлекать необходимые данные для анализа.

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

Капча загружается...