내가 가진 scp
(하나의 원격 서버에서 다른 서버로) 전송, 그것은 매우 큽니다.
따라서이 명령을 실행 한 컴퓨터를 닫으십시오. 전송이 종료됩니까? ssh
Bitwise 프로그램을 사용하여 쉘에 액세스 할 수 있습니다.
답변
여러 가지 솔루션이 있습니다.
프로세스 배경 및 폐기
- ssh 터미널을 원격 서버로 엽니 다.
scp
평소와 같이 전송을 시작하십시오 .- scp 프로세스의 배경을 지정하십시오 ( Ctrl+ Z, 명령)
bg
. - 백그라운드 프로세스를 제거하십시오 (
disown
). - 세션을 종료하면 (
exit
) 원격 시스템에서 프로세스가 계속 실행됩니다.
이 방법의 한 가지 단점은 stdout 및 stderr의 파일 디스크립터에 여전히 ssh 세션의 tty에 대한 참조가 포함된다는 것입니다. 이로 인해 종료하려고하면 터미널이 정지 될 수 있습니다. ~.
ssh 클라이언트를 강제로 닫으려면 입력하여이 문제를 해결할 수 있습니다. 이스케이프 시퀀스는 새 줄을 따라야합니다 (참조 ~?
). 포기하고있는 프로세스가 stdout 또는 stderr에 쓰는 경우 tty 버퍼가 넘치면 프로세스가 조기에 종료 될 수 있습니다.
스크린 세션 생성 및 분리
GNU Screen 을 사용하면 원격 터미널 세션을 만들 수 있으며 세션에서 로그 아웃 한 후 서버에서 분리하여 계속 실행할 수 있습니다. 그런 다음 나중에 서버에 다시 로그인하여 세션에 다시 연결할 수 있습니다.
- ssh를 통해 원격 서버에 로그인하십시오.
- 스크린 세션을 시작하십시오
screen -D -R <session_name>
. scp
평소와 같이 전송을 시작하십시오 .- Ctrl+ A를 사용 하여 화면 세션을 분리하십시오 d.
- ssh 세션 종료 (
exit
)
세션에 다시 연결하려면 다음을 수행하십시오.
- ssh를 통해 원격 서버에 로그인하십시오.
- 스크린 세션에 다시 연결하십시오.
screen -D -R <session_name>
끊지 않고 명령 실행
를 사용하여 답변을 참조하십시오 nohup
.
작업 스케줄러 사용
자동화하려는 정기적 인 작업 인 경우이 방법이 가장 좋습니다.
답변
를 사용할 수 있습니다 nohup(1)
. 즉, 다음과 같은 작업을 수행 할 수 있습니다.
nohup scp alice@source:/the/answer/of/all bob@target.example.com:/var/tmp/42 &
의 출력이 생성됩니다 nohup.out
. 그러면 안전하게 로그 아웃 할 수 있습니다.
답변
예, 종료됩니다. 연결없이 터미널 세션을 유지하는 솔루션은 다음과 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.
답변
위에서 말한 것처럼 screen 명령을 사용할 수 있습니다.
- 화면 만들기
user@server:~$ screen -S bigscptransfer
- 당신은 지금 화면에 있습니다
ser@server:~$ scp bigfile.dat server2:.
- CTRL+ A를 사용하여 화면에서 분리 한 다음D
[detached from 5899.bigscptransfer]
- 필요한 경우 세션을 재개하십시오.
user@server:~$ screen -r bigscptransfer
답변
nohup scp shinto @ source : / home / data roose@target.example.com : / var / tmp / file
명령을 일시적으로 중지
CTRL + Z
명령을 배경에 넣고 다음을 입력하십시오.
bg
요 프로세스를 확인할 수 있습니다 :
직업