Muszę uruchomić polecenia SSH zdalnie, a dane wyjściowe są wyświetlane lokalnie. Ale jeśli połączenie zostanie zerwane, chcę, aby polecenie nadal działało.
Nie mówię tak dużo o logowaniu i wykonywaniu, ale robieniu ssh user @ remotehost 'command && command etc'
Jak mogę się upewnić, że polecenie działa, nawet jeśli połączenie zostanie zerwane?
źródło
Czy chcesz mieć trwałą sesję, którą możesz wznowić, czy po prostu powstrzymać rozłączenie się przed zabiciem ekscytacji?
W pierwszym przypadku zastosowania
screen
, w tym drugimnohup
.źródło
Jak wspomniano wcześniej,
screen
można zrobić wszystko. Ale nie tylko to, czego potrzebujesz. Używam ekranu od lat i teraz używam go przy każdym logowaniu do systemów. Spróbuj zainstalowaćscreen
i utworzyć za~/.screenrc
pomocą takiej konfiguracji:Potem biegnij
screen -Rd vcf
. Jest to preferowane wywołanie screena. Ponownie połączysz się z poprzednio utworzoną sesją o nazwie vcf * (lub zostaniesz ostrzeżony, jeśli niejednoznaczny) lub, jeśli sesja jeszcze się nie otworzy, zostanie utworzona. CTRL+ Ato meta-klucz, który robi wszystko.CTRL+A C
( CTRL+ A, a następnie C) utwórz nowe okno (ekran) w sesji.CTRL+A SPACE
przenieś fokus do następnego okna w rundzie.CTRL+A D
odłączyć bieżącą sesję, zachowując funkcjonalność wszystkich okien między połączeniami. Jeśli masz uruchomione jakieś długie zadanie, możesz odłączyć od ekranu i podłączyć je później, aby zobaczyć, co się stanie. To samo dzieje się, jeśli stracisz sesję ssh - ekran pozostanie przy życiu przy wszystkich otwartych oknach i uruchomionych zadaniach.Jeśli chcesz zamknąć okno wewnątrz ekranu - po prostu
exit
z jego powłoki. Jeśli chcesz zamknąć wszystkie powłoki / zadania we wszystkich oknach i wyjść z ekranu - po prostu naciśnijCTRL+A CTRL+\
i naciśnij „Y”, gdy zostaniesz o to poproszony.Dla całej reszty patrz ekran człowieka.
źródło
Widziałem tę alternatywę dla niezawodnego połączenia „jak” ssh:
http://mosh.mit.edu/
źródło
Zazwyczaj robiłbym:
źródło