scp
꽤 큰 전송(한 원격 서버에서 다른 서버로)이 있습니다 .
그렇다면 이 명령을 실행하는 컴퓨터를 종료하고 싶을 수도 있습니다. 이로 인해 전송이 종료됩니까? ssh
Bitwise 프로그램을 사용하여 쉘에 액세스 할 수 있습니다 .
답변1
여러 가지 솔루션이 있습니다.
배경 및 거부 프로세스
- 원격 서버의 SSH 터미널을 엽니다.
- 평소대로 전송을 시작합니다
scp
. - scp 프로세스를 백그라운드에 넣습니다( Ctrl+ Z, 그 다음 명령
bg
.) - 백그라운드 프로세스를 거부합니다(
disown
). - 세션을 종료하면(
exit
) 프로세스가 원격 컴퓨터에서 계속 실행됩니다.
이 접근 방식의 한 가지 단점은 stdout 및 stderr에 대한 파일 설명자가 여전히 ssh 세션의 tty에 대한 참조를 포함한다는 것입니다. 따라서 종료하려고 하면 터미널이 중단될 수 있습니다. SSH 클라이언트를 강제 종료하여 이 문제를 해결할 수 있습니다 ~.
(이스케이프 시퀀스는 새 줄을 따라야 합니다... 참조 ~?
). 중단하려는 프로세스가 stdout 또는 stderr에 기록하는 경우 tty 버퍼가 오버플로되면 프로세스가 조기에 종료될 수 있습니다.
스크린 세션 생성 및 분리
GNU 화면세션에서 로그아웃한 후에도 서버를 분리하고 계속 실행할 수 있는 원격 터미널 세션을 생성하는 데 사용할 수 있습니다. 그런 다음 나중에 서버에 다시 로그인하여 세션에 다시 연결할 수 있습니다.
- SSH를 통해 원격 서버에 로그인합니다.
- 화면 세션을 시작하세요
screen -D -R <session_name>
. - 평소대로 전송을 시작합니다
scp
. - Ctrl+를 사용한 A다음 화면 세션을 분리하세요 d.
- SSH 세션 종료(
exit
)
세션에 다시 연결하려면:
- SSH를 통해 원격 서버에 로그인합니다.
- 스크린 세션에 다시 연결하고,
screen -D -R <session_name>
전화를 끊지 않고 명령 실행
다음을 사용하여 답변 보기nohup
.
작업 스케줄러 사용
자동화하려는 반복 작업인 경우 이것이 가장 좋은 솔루션입니다.
답변2
당신이 사용할 수있는nohup(1)
즉, 다음 작업을 수행합니다.
nohup scp alice@source:/the/answer/of/all [email protected]:/var/tmp/42 &
그러면 출력이 생성됩니다 nohup.out
. 그러면 안전하게 로그아웃할 수 있습니다.
답변3
예, 종료됩니다. 연결 없이 터미널 세션을 활성 상태로 유지하는 솔루션은 다음 screen
절차입니다.
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.
답변4
nohup scp shinto@source:/home/data[이메일 보호됨]:/var/tmp/파일
일시적으로 중지 명령
CTRL+z
명령을 백그라운드에 넣으려면 다음을 입력하십시오.
배경
다음을 통해 프로세스를 확인할 수 있습니다.
일하다