Вопрос или проблема
Что я хочу сделать, так это получить отсортированный список всех пользователей, которые входили в систему в течение определенного периода времени (скажем, например, с начала сентября).
Как мне задать временной диапазон (как в моем примере) в команде 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
Объяснение команды:
last -s "2023-09-01" -t "2023-09-30"
— получает все записи входа пользователей.awk '{print $1}'
— извлекает только имена пользователей из полученного списка.sort
— сортирует данные по алфавиту.uniq
— устраняет дубликаты, оставляя только уникальные имена пользователей.
Примечания
- Обратите внимание, что формат времени для параметров
-s
и-t
позволяет использовать различные стили записи, включая относительные и абсолютные временные указания. Например,last -s "-1 month"
илиlast -s "2023-09-01"
. - Чтобы ознакомиться с более подробной информацией о параметрах
last
, вы можете обратиться к справочной странице, введя командуman last
, где будут указаны все доступные опции.
Заключение
Использование команды last
с определенными временными параметрами позволяет эффективно мониторить активности пользователей в системе. Применяя комбинацию других утилит, таких как sort
и uniq
, вы можете получить хорошо обрабатываемую и аккуратно представленную информацию. Надеюсь, этот ответ поможет вам в вашей задаче, и вы сможете легко извлекать необходимые данные для анализа.