Учитывая имя машины, я хочу проверить, вошел ли кто-то в систему на этой машине или нет. Достаточно будет просто ответа "да/нет" (мне не нужно имя пользователя). Есть ли подсказки, какую команду искать?
Под «входом в систему» я подразумеваю использование графического интерфейса на этой машине — ssh не считается.
Можете считать, что у меня есть авторизованный SSH-вход на эту машину.
решение1
who
показывает, кто вошел в систему. Если они находятся в графическом интерфейсе, их «терминалом» является X-дисплей, к которому они подключены (в противном случае tty):
paul :0 2013-02-20 11:43
Так
who | grep paul
ничего не вернет, если я не вошел в систему, или что-то еще, если я вошел в систему.
Если вы хотите исключить ssh и консольные соединения, то:
who | grep -v pts | grep paul
Эту команду можно запустить удаленно, добавив к команде ssh:
ssh user@host 'who | grep -v pts | grep paul'
Это позволит войти в удаленную машину, выполнить who
и вернуть результаты.