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?

Eugen Konkov
źródło

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

Jakuje
źródło
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