Скрипт для termux (Android only), следит за указанным сервером. Если кто-то залогинился на сервер, скрипт выдаёт уведомление в телефоне.
- Добавлена поддержка нескольких серверов.
- Важно: теперь обязательно надо указывать notification-id, четвёртый параметр. Любое числовое значение, не повторяющееся на другие серверы.
- termux, termux-api
- Разрешения termux и termux-api на доступ к сети и файлам.
- Сгенерировать ssh-key, для доступа к серверу без пароля.
-
Устанавливаем termux
-
Устанавливаем termux-api
-
Заходим в termux, делаем следующее:
apt update apt upgrade apt install termux-api
Это установит обновления, если они имеются, и установит связь termux с termux-api.
-
Устанавливаем git
apt install git
-
Клонируем watch-srv
git clone https://git.tuxnix.ru/nixscript/watch-srv
Всё готово к настройке.
Примечание: по-умолчанию в termux есть только vi, так что если не дружите с ним, установите предпочтительный. К примеру я использую Midnight Commander ( mc ), в котором есть mcedit, но больше мне нравится micro. И mc, и micro доступны, так что думаю и другие редакторы тоже есть.
Есть масса вариантов, оставить скрипт в текущем месте, переместить в системную директорию, например /usr, или сделать наиболее логично. Создать директорию ~/bin и скопировать скрипт туда. На примере ~/bin я и опишу настройку.
-
Создаём директорию
mkdir ~/bin
-
Копируем туда скрипт
cp ./watch-srv/watch-srv.sh ~/bin/watch-srv.sh
-
Открываем скриптс любимым редактором, раскомментируем последнюю строку и заменяем в ней login server.ru 22 и 0 на нужные параметры.
check "login" "server.ru" 22 0
0 - уникальный идентификатор уведомления. Каждый сервер должен иметь свой идентификатор, если мониторите несколько серверов. К примеру 0, 1, 2 ...
-
Генерируем ssh-key и закидываем на сервер
ssh-keygen cd .ssh rsync ./id_rsa.pub [email protected]:/home/login/.ssh/termux_key ssh [email protected] cat ~/.ssh/termux_key >>~/.ssh/authorized_keys
Две последние команды потребуют ввода пароля. После, пароль не потребуется.
-
Добавляем задачу в cron. Помните, редактор по-умолчанию - vi. Если хотите использовать другой, вот вам пример:
export EDITOR="mcedit"; crontab -e # или так export EDITOR="micro"; crontab -e
Задачу в cron добавить легко. К примеру для проверки каждую минуту в редакторе пишем такую строку:
* * * * * ~/bin/watch-srv.sh
Я решил сделать проверку каждые 30 секунд, поэтому пришлось использовать hack:
* * * * * ~/bin/watch-srv.sh * * * * * (sleep 30; ~/bin/watch-srv.sh)
Здесл два вызова скрипта, оба действуют через минуту, но первый сразу срабатывает, а другой с задержкой в 30 секунд.
Сохраняем и выходим.
-
Осталось лишь запустить cron
crond
Теперь, если кто-то залогинится на сервере, в телефоне появится уведомление такого вида:
Как видно на скриншоте, имеется три кнопки:
- Свои - предотвращает постоянное появление уведомление до тех пор, пока на сервере не разлогинится пользователь. После выхода всех пользователей скрипт отрабатывает в стандартном режиме.
- Скопировать - помещает текст уведомления в ситемный буфер обмена смартфона.
- Получить весь лог - получает весь лог и сохраняет его в Downloads/srv-login.log
Всё достаточно просто. Если есть пожелания, предложения, идеи, пишите в VK/Nixscript или мне VK/grigruss.