Как на языке shell отследить входы/выходы пользователей в систему с указанием времени работы и номера терминала?
Как на языке shell отследить входы/выходы пользователей в систему с указанием времени работы и номера терминала?
Сам алгоритм мне вроде и понятен:
1) Записываем в файл пользователя, номер терминала и время
2) Сравниваем минуты через 2 текущего пользователя И номер терминала, если совпадают то увеличиваем время прибытия в файле, а иначе завершаем послед. сессию и записываем новую..?
Я с языком shell мало знаком, не кидайте пожалуйста помидоры :(
Привет,
Входы и выходы пользователей логируются на уровне ядра и записываются в лог, поэтому отследить время входа, выхода и количество времени сессии можно без всяких shell-скриптов, командой last.
А что значит "иначе завершаем послед. сессию"? Вы хотите по времени как-то ограничить работу в терминале?
Добрый вечер, спасибо за решение
Нет я не хочу по времени ограничить работу :)
Я имел ввиду что поставлю метку в файле что работа пользователя завершилась :)
Есть предположение, что Вы придумали что-то среднее между w, who и last. Почитайте про wtmp/utmp - возможнео обойдетесь парсером.
Есть также предположение, что это очередная школота скидывает сюда свои задачки. Потому что в реале никто не ставит ограничение типа "это нужно сделать именно на /bin/sh"