컬을 사용한 자동 SFTP 업로드

컬을 사용한 자동 SFTP 업로드

자동화된 ftp 명령을 사용하여 매일 원격 서버에 파일을 업로드하고 싶습니다. 누군가 아래 명령이 올바른지 틀린지 확인하도록 도와줄 수 있습니까?

curl -Tu username:password /path/to/dir/*(om[1]) sftp://sftp.example.com/remote/dir

어디

  • username:password내 사용자 이름과 비밀번호입니다.

  • /path/to/dir/*(om[1]): 내 로컬 디렉터리에서 최신(업데이트된) 파일을 가져옵니다.

  • sftp://sftp.example.com/remote/dir: 안전한 파일 전송

답변1

명령줄에 문제가 있습니다. 확인할 수 있습니다.매뉴얼 페이지. 기본적으로 -T <file to be uploaded> 와 분리 해야 합니다 -u <user:password>. 결국 명령줄은 다음과 같아야 합니다.

curl -T /path/to/dir/*(om[1]) -u username:password sftp://sftp.example.com/remote/dir

하지만 당신이 언급한 정규 표현식이 실제로 무엇을 의미하는지 잘 모르겠습니다 *(om[1]).

물론 SFTP를 사용하는 경우 옵션에 따라 사용자 이름과 --key비밀번호를 사용하는 대신 SSH 개인 키를 사용하여 인증할 수도 있습니다 --key-type. 자세한 내용은 위에 링크된 설명서를 참조하세요.

마지막으로 질문은FTP명령줄 예제는 다음과 같습니다.SFTP하지만 이것이 내가 제안한 솔루션을 변경해서는 안 됩니다.

답변2

대신 rsync를 사용하지 않는 이유는 무엇입니까? 패키지 관리자를 사용하여 설치해야 할 수도 있지만 이러한 용도로 설계되었습니다.

RSYNC_PASSWORD='password' rsync -rtv /path/to/dir/ [email protected]:remote/dir

-r은 재귀적으로 rsync하고, -t는 타임스탬프를 보존하므로 기존 파일이 (효과적으로) 다시 업로드되지 않으며, -v는 장황합니다.

SSH 공개 키를 생성하고 복사한 경우 이 섹션을 수행할 필요가 없습니다 RSYNC_PASSWORD='password'.

공개/개인 키 조합이 없으면 다음을 실행하십시오.

ssh-keygen

그 다음에

ssh-copy-key-id [email protected]

이는 원격 서버가 파일 연결 및 업데이트를 지원한다고 가정합니다 . 그렇지 않으면 공개 키를 사용하여 수동으로 파일을 업로드 $HOME/.ssh/authorized_keys해야 합니다 .authorized_keys

이는 최신 버전의 Linux를 실행하고 있다고 가정합니다. Mac OS와 같은 Unix 시스템은 그렇지 않습니다 ssh-copy-key-id. 원격 호스트에 공개 키를 생성하고 설치하는 방법에 대한 자세한 내용은 다음과 같습니다.

http://www.ece.uci.edu/~chou/ssh-key.html

관련 정보