Mam scp
transfer (z jednego zdalnego serwera na inny), który jest dość duży.
Więc może chcę zamknąć komputer, z którego wykonałem to polecenie, czy to zakończy transfer? Mam ssh
dostęp do powłoki za pomocą programu Bitwise.
Mam scp
transfer (z jednego zdalnego serwera na inny), który jest dość duży.
Więc może chcę zamknąć komputer, z którego wykonałem to polecenie, czy to zakończy transfer? Mam ssh
dostęp do powłoki za pomocą programu Bitwise.
Odpowiedzi:
Istnieje wiele rozwiązań.
scp
transfer jak zwykle.bg
).disown
).exit
), a proces będzie kontynuowany na zdalnym komputerze.Wadą tego podejścia jest to, że deskryptory plików dla stdout i stderr nadal będą zawierać odniesienia do tty sesji ssh. Z tego powodu terminal może się zawiesić podczas próby wyjścia. Możesz obejść ten problem, pisząc, ~.
aby wymusić zamknięcie klienta ssh (sekwencja ucieczki musi podążać za nową linią ... zobacz także ~?
). Jeśli proces, który porzucasz, zapisuje na standardowe lub standardowe, proces może zakończyć się przedwcześnie, jeśli bufor tty się przepełni.
Za pomocą GNU Screen można utworzyć zdalną sesję terminala, którą można odłączyć i kontynuować na serwerze po wylogowaniu z sesji. Możesz później zalogować się ponownie na serwerze i ponownie dołączyć do sesji.
screen -D -R <session_name>
.scp
transfer jak zwykle.exit
)Aby ponownie dołączyć do sesji:
screen -D -R <session_name>
Zobacz odpowiedź za pomocą nohup
.
To najlepsze rozwiązanie, jeśli jest to okresowe zadanie, które chcesz zautomatyzować.
screen -r <session>
zrobiło ... więc -DR
różni się to tylko -r
tym, że może je wyrzucić? Nie tylko podłącz ponownie i nie powiedzie się, jeśli jest na nim inny użytkownik.
Tak, zostanie zakończone. Rozwiązaniem umożliwiającym utrzymanie sesji terminalu przy życiu bez łączności jest screen
program:
SCREEN(1) SCREEN(1)
NAME
screen - screen manager with VT100/ANSI terminal emulation
SYNOPSIS
screen [ -options ] [ cmd [ args ] ]
screen -r [[pid.]tty[.host]]
screen -r sessionowner/[[pid.]tty[.host]]
DESCRIPTION
Screen is a full-screen window manager that multiplexes a physical ter‐
minal between several processes (typically interactive shells). Each
virtual terminal provides the functions of a DEC VT100 terminal and, in
addition, several control functions from the ISO 6429 (ECMA 48, ANSI
X3.64) and ISO 2022 standards (e.g. insert/delete line and support for
multiple character sets). There is a scrollback history buffer for
each virtual terminal and a copy-and-paste mechanism that allows moving
text regions between windows.
Jak wspomniano powyżej, możesz użyć polecenia screen, na przykład:
user@server:~$ screen -S bigscptransfer
ser@server:~$ scp bigfile.dat server2:.
[detached from 5899.bigscptransfer]
user@server:~$ screen -r bigscptransfer
nohup scp shinto @ źródło: / home / data roose@target.example.com: / var / tmp / file
zatrzymaj tymczasowo polecenie za pomocą
CTRL + z
umieść w tle polecenie, wpisz:
bg
możesz sprawdzić proces za pomocą:
Oferty pracy
-D -R
flagi na początkuscreen
. Przeczytałem stronę podręcznika i nie pomogło mi to zrozumieć:-D -R Attach here and now. ...