Как запустить команду при входе или выходе из консоли?

Немногие знают, что существует возможность выполнения команды в консоли сервера в момент входа или выхода из сессии. Этот специфический функционал относится к командной строке unix-систем. Это может быть команда на удаление файла или запуска какого-либо сервиса.

Рассмотрим вариант с использованием bash, как наиболее популярного командного интерпретатора в Linux и csh/tsch - для FreeBSD.

Вход в консоль

Для того, чтобы запустить команду и увидеть ее вывод при авторизации в консоль, поместите ее в файл .bash_login или .login (в случае использования Linux или FreeBSD соответственно). Например, это может быть команда информации об использовании дискового пространства:

df -h

Выход из консоли

В домашней директории находится файл .bash_logout (в случае использования bash) или .logout (для csh/tcsh). В который можно поместить команду для выполнения при закрытии сессии. Например, удаление файлов из директории /tmp

rm -f /tmp/*

Обратите внимание, что помещение в файл большого количества команд, запуска ресурсоемкого скрипта или скрипта с ошибками может послужить причиной потери доступа к серверу или получения доступа к учетной записи постороннего путем завершения выполнения этой команды. Поэтому рекомендую все же выполнять скрипты либо в screen, либо пока вы еще авторизованы на сервере.

Автор статьи:

Сабынич Вадим

Аватар пользователя vadim s. sabinich
Вернуться