자동 FTP 스크립트가 소스 디렉터리를 찾지 못합니다.

자동 FTP 스크립트가 소스 디렉터리를 찾지 못합니다.

전송에 필요한 파일을 검색할 위치를 알 수 있도록 소스 디렉터리를 포함하도록 아래 스크립트를 어떻게 수정할 수 있습니까?

일주일에 한 번 자동으로 파일을 원격 서버로 전송하는 bash 스크립트가 있습니다.

스크립트는 다음과 같습니다.

#!/bin/bash

HOST=sftp.mydomain.com  
USER=user           
PASS=pass          

ftp -inv $HOST << EOF
$USER $PASS
cd /d D:\destination\directory
put file1.gz
put file2.gz
put file3.gz

bye

EOF

파일 1~3은 모두 source/ 디렉터리에 있으므로 source/ 디렉터리의 모든 파일을 위에서 지정한 대상 경로로 전송하고 싶습니다.

그러나 스크립트가 원본 가상 머신에서 실행되고 있기 때문에 스크립트가 모든 폴더에서 간단히 추출할 수 있으므로 디렉터리를 지정할 필요가 없다고 생각합니다(초보 오류를 이해합니다).

또는: 단순히 폴더의 전체 내용을 나열하는 대신 전체 디렉토리에 대해 ftp를 사용하는 더 쉬운 방법이 있습니까?

답변1

프로세스가 ftp소스로 간주하는 디렉터리를 변경하려면 cd사전 디렉터리이거나 lcd그 안에 있는 디렉터리일 수 있습니다.

1.

cd /source/directory
ftp ...

2.

ftp ...
lcd /source/directory
...

lcd(에서 man ftp)local change directory의 약어입니다.

로컬 컴퓨터의 작업 디렉터리를 변경합니다.

여기서 "로컬"은 실행 중인 시스템을 나타냅니다 ftp.

현재 로컬 디렉토리의 모든 파일을 ftp의 현재 원격 디렉토리에 넣으려면 다음을 사용하십시오.

prompt
mput *

FTP 명령은 또는 prompt같은 "다중" 작업 중에 대화형 프롬프트를 비활성화합니다 . 에서 인용mgetmputFTP 매뉴얼 페이지(또는 지역을 확인하세요 man ftp):

여러 파일을 전송하는 동안 대화형 프롬프트가 나타나 사용자가 파일을 선택적으로 검색하거나 저장할 수 있습니다.

관련 정보