Отслеживаение подключенных пользователей

Возникла задача — оперативно узнать, подключился ли пользователь по ssh к linux машине.

С помощью команды who можно элементарно узать, кто сейчас подключен:

bessarabov@server:~$ who
bessarabov pts/0 2008-08-06 15:35 (1.1.1.1)

Для того, чтобы оперативно узнать, кто подключен, нужно просто запускать часто эту команду и смотреть на ее вывод. Без проблем можно все время руками ее запускать, но соврешенно просто это автоматизировать.

В bash существует возможность писать циклы. Чуть-чуть разобратся и получается вот такая команда (она бесконечно запускает who (останавливается по ctrl+C)):


$ until false; do who; done

О! Почти то, что нужно. Немного причесываю и готово:


$ until false; do date; who; echo “”; sleep 1; done

Tags: ,

Wednesday, August 6th, 2008 Uncategorized

5 Comments to Отслеживаение подключенных пользователей

  1. Предлагаю еще такой вариант, с использованием http://ru.wikipedia.org/wiki/Watch

    $ watch who

  2. Minor on August 7th, 2008
  3. Спасибо большое! Не знал про такую штуку.

    В man-е (http://usr-share-man.org/man1/watch.html) мега повеселилил пример:

    You can watch for your administrator to install the latest kernel with
    watch uname -r

  4. bessarabov on August 7th, 2008
  5. Прикольно, подняло настроение. Только reboot не минуем! %)

  6. Minor on August 7th, 2008
  7. Есть еще tail, очень полезная штука с ключиком -f для просмотра логов в реальном времени.
    $ tail -f /var/log/apache/access.log

  8. Minor on August 7th, 2008
  9. Ну, tail -f — известная для меня штука, а во про watch я не знал.

    Еще раз спасибо =)

  10. bessarabov on August 7th, 2008