Мне нужно выполнить некоторые вычисления на машине, к которой я могу получить доступ только удаленно, но которая также служит рабочей станцией. Их много, и я хочу выбрать «бесплатный». Бесплатное означает, что в этом случае никто не вошел локально.
Моей первой попыткой была команда who
, но по некоторым причинам в ней перечислены только «выбранные» пользователи, и я не могу точно узнать, как они выбраны. Следующая попытка: ps aux | cut -d " " -f1 | sort | uniq
: лучше показать группу демонов, но также и локального пользователя, которого не отображало who
.
Мое текущее решение состоит в том, чтобы пойти и сделать ps aux | grep "gnome-session"
, что лучше, но все еще дает мне много мусора. В идеале я ищу что-то, что я могу включить в свой профиль ssh, который предупреждает меня о (активных) локальных пользователях при входе в систему.
who
, ни w
не вернули локального пользователя. Является ли это неожиданным поведением? uptime
, с другой стороны, показали мне правильное количество пользователей (локальные и удаленные пользователи минус системы, такие как root) finger
не установлено [1111 ] Установлена ли команда finger
или нет? Это должно дать список всех пользователей, которые вошли в систему и откуда (то есть с другого компьютера или непосредственно на компьютер), а также сообщить, сколько времени этот пользователь простаивал.
Для получения дополнительной информации см. справочную страницу по Ubuntu finger .
Я бы пошел с:
who | cut -d' ' -f1 | sort | uniq
Это покажет список реальных пользователей. Если список пуст - машина находится в состоянии выхода из системы, ожидая, чтобы кто-то вошел в систему.
ps aux
также покажет некоторых пользователей системы, которых вы, вероятно, не хотите видеть.
Используйте w
Из w man page:
Показать, кто вошел в систему и что они делают.
Пример вывода:
$ w
09:15:10 up 43 min, 2 users, load average: 0.74, 0.38, 0.24
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
kucing tty7 :0 08:32 43:15m 57.73s 0.18s x-session-manager
kucing pts/0 :0.0 08:48 0.00s 0.24s 0.00s w´