SFTP 파일 다운로드를 백그라운드로 보내는 방법은 무엇입니까?


8

하는 것이 가능하니:

  1. 원격 시스템에서 SFTP 명령을 실행하고 파일을 다운로드 ( ssh user@machine, sftp user2@server, get file)
  2. 그런 다음 다운로드를 백그라운드로 보내서 로컬 컴퓨터를 끌 수 있습니다.

1) 시스템 A에서 로컬로 연결되어 있습니다. 2) 시스템 B에서 SSH를 통해 연결하려고합니다. 3) B의 쉘에서 시스템 C에서 원격 sftp 다운로드를 실행하려고합니다. 4 ) 그런 다음 시스템 A를 종료하려고합니다. 맞습니까?
Pavlos G.

A-내 로컬 컴퓨터; B-원격 서버 1; C-원격 서버 2; 내가 입력 할 ssh user@B내 기계, 후 sftp user@Cget some_file.tar.gzB 기계에; 그래서 C에서 B로 파일을 sftp로 다운로드하고 A 시스템을 종료하고 원격 B와 C를 계속 실행하고
싶습니다

답변:


10

screen머신 B에서 시도 하고 다운로드를 시작한 후 분리하십시오.

머신 A에서 :

ssh user@B

머신 B에서 :

screen
sftp user@C
get some_file.tar.gz
Ctrl-a d
logout

시도하지 않았지만 작동 할 수 있습니다.

편집 : 나중에 다시 로그인 screen -x하여 실행중인 세션에 다시 연결하십시오. 그런 다음 서버 자원을 소비하지 않도록 올바르게 종료하십시오.


효과가있다! 대단히 감사합니다 :) 매우 유용한 명령 ...
Praweł

우분투의 재미있는 화면을 보려면 byobu를 사용해보십시오.
finley

1

화면의 "분리"기능을 원한다면 해당 기능 만 제공하는 "dtach"라는 프로그램이 있습니다.


0

명령 뒤에 문자 & (앰퍼샌드)를 넣으면 백그라운드에서 실행됩니다. 그러나 명령이 이미 실행 된 후 수행 방법을 모르거나 원격 시스템에서 작동하는지 여부도 알 수 없습니다.


&괜찮을 지 모르지만 --password명령 줄을 통과 할 수 있는 옵션을 모르겠습니다 (그래서 나는 무언가를 할 수 없습니다 sftp --password=abc user@server:file.tar.gz &)
Praweł

0

이 문제에 대한 여러 가지 해결책이 있습니다.

하나의 옵션은 screen명령 을 사용하는 것이지만 약간 복잡해 보입니다.

내가 찾은 가장 좋은 방법은 작업을 백그라운드로 보내는 것입니다.

귀하의 경우 명령은

scp user@machine:~/filename.ext /tmp &
scp -r user@machine:~/dirname /tmp &
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.