FTP 또는 SSH를 사용하여 명령 줄에서 파일을 업로드하는 방법은 무엇입니까? 스크립트를 만들고있다. 또한

나는 이것을 전에 한 적이 없으며 나는 이것을 위해 bash 쉘 스크립트를 만들고있다. 또한 ssh를 통해 몇 가지 작업을 수행하기 위해 연결합니다 (이미 수행 방법을 이미 알고 있음). ssh를 통해 파일을 업로드하는 방법이 있으므로 한 번의 연결로 모든 작업을 수행 할 수 있습니까?

어떻게해야합니까?

#!/bin/sh

cd ./files-to-upload
#upload the files


답변

scp원격 시스템으로 복사하는 데 사용할 수 있습니다 .

scp <file to upload> <username>@<hostname>:<destination path>

답변

아마도 SCP 나 비슷한 것을 찾고있을 것입니다.

#!/bin/bash

cd ./files-to-upload
scp * user@host:/path/to/upload/files/to

물론 이것은 원하는대로 조정해야합니다. user @ host를 실제 정보로 바꾸십시오. 업로드 할 비밀번호를 묻는 메시지가 나타납니다.


답변

실제로 scp 대신 ssh를 사용해야하는 경우 다음을 수행 할 수 있습니다.

for filename in *; do
  cat $filename | ssh user@host "cd /path/to/upload/files/to; cat - > $filename"
done

그러나 탄 젠스 제안 과 같은 규칙적인 scp 가 가장 좋습니다.


답변

scp는 SSH를 통해 암호화되므로 더 나은 대답입니다.

그러나 표준 ftp를 통해 수행하려면 ncftpput을보십시오. 파일을 업로드하도록 특별히 설계되었습니다.

이름 ncftpput-스크립트 용 인터넷 파일 전송 프로그램

시놉시스 ncftpput [옵션] 원격 호스트 원격 디렉토리 로컬 파일 …


답변

curl 은 여러 프로토콜을 처리하는 좋은 프로그램입니다.


답변

당신이 사용하는 경우 scp(보안 복사)는 클라이언트에 연결 명령과 이미 호스트 장치에 저장된 지문이없는 경우는 호스트 암호를 요청합니다 그렇지 않으면 자동 내가 믿는 호스트에 연결해야합니다.


답변

ec2 인스턴스의 경우 .pem파일도 전달해야 합니다.

$scp -i ~/Desktop/amazon.pem ~/Desktop/file.zip  ubuntu@ec2-54-166-128-20.compute-1.amazonaws.com:~/data/