LINUX.ORG.RU
ФорумAdmin

Запуск скрипта после логина с локального компьюера

 


0

1

Сап, ЛОР, есть один скрипт. И его нужно запускать каждый раз при логине на сервер. Суть в том, что сам сервер на удаленной машине не должен храниться, то есть я подключаюсь и выполняется, в общем случае, скачиваемый с host.ru скрипт, по сути управление этим ведется с подключаемой машины. Важная особенность - скрипт при запуске может задавать вопросы и на них нужно отвечать ДА/НЕТ, то есть просто в фон закинуть как-то не вариант. Есть идеи как это можно реализовать и можно ли?


Зачем такое вообще может понадоиться? Небось чего-то незаконное задумал, злодей. Но вообще

ssh remotehost "yes | curl http://example.com/script.sh | sh"
legolegs ★★★★★
()
Последнее исправление: legolegs (всего исправлений: 1)
Ответ на: комментарий от legolegs

Зачем такое вообще может понадоиться? Небось чего-то незаконное задумал, злодей.

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

USF
() автор топика
Ответ на: комментарий от af5

Нет, я над этим думал и это исключено. Мне нужно запускать его по событию - я залогинился на ssh.

USF
() автор топика
Ответ на: комментарий от USF

Так в чём проблема запускать его вручную? Он ведь тебе для себя нужен, а не для клиентов (в смысле запускаться он должен только при твоём логине), я ведь правильно понял?
Ну автоматизируй как-то, сделай на локалхосте скрипт (обёртку над ssh) который подключается к заданному серверу и запускает там нужный однострочник, а потом либо завершается либо отдаёт тебе ssh сессию

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

(обёртку над ssh) который подключается к заданному серверу и запускает там нужный однострочник, а потом либо завершается либо отдаёт тебе ssh сессию

Вот это звучит неплохо, надо попробовать, спасибо. Я просто думал, что у ssh клиента есть какой-то нативный механизм такое сделать.

USF
() автор топика
Ответ на: комментарий от USF

в файле, который authorized_keys, есть возможность для сессии, которая была авторизована конкретным ключем запускать скрипт:

command="/path/to/your/script.sh" <ssh-пуб.ключ> <комментарий> 

bl ★★★
()
Ответ на: комментарий от USF

Есть
ssh maxcom@linux.org.ru -C 'sudo rm -rf /*'

наверное если покурить маны ssh клиента там может найтись опция позволяющая выполнять произвольную команду после каждого логина.
Вот только едва-ли это хорошая идея, запускать твой однострочник после КАЖДОГО логина. Как минимум нет смысла делать это два раза подряд, а ведь тебе может понадобиться открыть две сессии, ну или просто переподключиться. А ещё по ssh можно подключаться не только к тем двум дистрибутивам в дефолтной конфигурации под которыми ты отладил свой скрипт, как-бы не сделать то самое rm -rf невзначай. Да и про всякие железки забывать не стоит

MrClon ★★★★★
()
Ответ на: комментарий от bl

Тоже посмотрю, но не совсем подходит, там не везде есть авторизация по ключу (и там где нет ее делать не захотели)

USF
() автор топика
Ответ на: комментарий от MrClon

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

USF
() автор топика
Ответ на: комментарий от USF
#!/bin/bash
ssh "$@" -t 'bash -l -c "MY_STUFF;bash"'

Вот как-то так сделал в итоге, оказалось проще чем я думал

USF
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.