Категории

пятница, 2 декабря 2011 г.

watch в FreeBSD и watch в Linux разные вещи

watch во FreeBSD позволяет наблюдать за происходящим в консоли у других пользователей. Например, в системе есть 2 пользователя user и admin. Admin подключается по ssh, и смотрит кто авторизован с системе:
FreeBSD@admin# w
21:16  up  1:39, 2 users, load averages: 0,00 0,00 0,00
USER             TTY      FROM          LOGIN@   IDLE WHAT
user            pts/0    192.168.4.1    20:22       4 more
admin           pts/2    192.168.4.2    21:08       - w
Видно, что в системе авторизованы 2 пользователя, у user выполняется команда more, а у admin выполняется команда w (who). Если теперь пользователь admin введет команду:
FreeBSD@admin# watch pts/0
Где pts/0 имя терминала, за которым хотим наблюдать. В результате пользователь admin будет видеть все происходящее в консоли пользователя user в режиме реального времени (некое подобие R-admin или TeamViewer, только для консоли), будет видно даже то, как набираются команды пользователем user.
Чтобы выйти из наблюдения нужно нажать комбинацию клавиш Ctrl+G.

watch в Linux - Периодическое выполнение команды.
Пример:
user@user-Ubuntu-11:~$ watch -n 5 df -h
'-n 5' - выполнять команду раз в 5 секунд.
'df -h' - команда, которая будет выполняться.

Если хотите такую же функциональность watch из Linux во FreeBSD, то потребуется установить из портов cmdwatch
FreeBSD@admin# cd /usr/ports/sysutils/cmdwatch
FreeBSD@admin# make install clean && rehash
После чего можно использовать cmdwatch
FreeBSD@admin# cmdwatch -n 5 df -h
Более подробно man watchman cmdwatch

Для работы данной утилиты потребуется модуль ядра snp.ko, и если этот модуль ядра не будет загружен, то при попытке использования команды w (who) в jail, получите сообщение об ошибке, для решения данной проблемы потребуется прописать автоматическую загрузку данного модуля
FreeBSD# echo 'snp_load="YES"' >> /boot/loader.conf

2 комментария:

Анонимный комментирует...

А теперь, для полноты поста, сделай для Linux аналог команды watch во FreeBSD

METAJIJI комментирует...

Когда я бываю на FreeBSD, то для таких случаев использую repeat с очень большим числом, либо бесконечные циклы вроде: while true; do foo bar; sleep 1; done

Не думаю, что стоит о таких вещах писать в статье :)
К тому же cmdwatch упомянута, если часто необходим такой функционал, то можно её установить из портов.

Отправить комментарий