Jak uruchomić polecenie po połączeniu ssh?


2

Kiedy podłączam się zdalnie, zawsze biegam

cd ~/w/logs
tail -f some_file.log

ale kiedy robię

ssh host 'cd ~/w/logs; tail -f some_file.log'

wszystko jest w porządku, ale po CTRL + C połączenie zostaje utracone. ( podobne pytanie, ale nie obejmuje problemu CTRL + C)

Jak uruchomić polecenie po zdalnym zalogowaniu?

Odpowiedzi:


5

Musisz zrobić dwie rzeczy. Pierwszym z nich jest uruchomienie interaktywnej bash po zakończeniu ogona (na bashkońcu), a następnie musisz przydzielić zdalny TTY, aby sesja stała się interaktywna ( -tprzełączniki):

ssh -t host 'cd ~/w/logs; less +F some_file.log; exec $SHELL'

exec- Jeśli podano polecenie, zastępuje ono powłokę. Nie jest tworzony nowy proces


Nie. To nie działa. Kiedy naciskam CTRL + C, aby zatrzymać polecenie „tail”, połączenie zostaje zerwane. Próbowałem tego: `ssh -t sv" cd ~ / w / logs; exec bash -l -c tail -f psgi.log "` ale bez powodzenia ((
Eugen Konkov

Ok, Ctrl + C, zabija wszystkie sesje. Biorąc pod uwagę niektóre polecenia, których nie musisz zabijać ( less), zadziała dla ciebie (zaktualizuje odpowiedź).
Jakuje

czy źle napisałeś, mężczyzna nie opisuje -tt, tylko -t?
Eugen Konkov

1
Po prostu nie rozumiem, dlaczego nie piszesz poleceń w profilu powłoki logowania i po prostu uruchamiasz proste ssh bez żadnych poleceń do zdalnego uruchamiania.
Gombai Sándor

1
Rozumiem, właśnie wziąłem „Kiedy podłączam się zdalnie, zawsze biegam ...” dosłownie.
Gombai Sándor
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.