
나는 그것을 사용하고 있다ncftpput내 Linux 서버에서 FTP로 로컬 파일을 업로드합니다. FTP를 사용하여 파일\디렉토리를 이동하는 것 외에 동일한 작업을 수행할 수 있는 방법이 있습니까? 제목에서 언급했듯이?
나는 알고 있다"ncftp 이름 바꾸기"하지만 내 bash 스크립트에서는 사용할 수 없기 때문에 그것은 나에게 좋지 않습니다.
ncftpput은 로컬 파일을 업로드하는 데 적합하지만 다음 위치에서 파일 이동/복사를 지원하지 않습니다.원격 디렉토리도착하다원격 디렉토리.
ncftpput에 해당하는 대체품이 있으면 공유해 주세요.
미리 감사드립니다, Edim
답변1
공개하지 않은 이유가 없다면 일반 FTP 대신 ncftp를 사용하려면 다음과 같이 스크립트에서 일반 FTP를 사용하여 이를 수행할 수 있습니다.
#!/bin/bash
HOST='some.host.name.com'
USER='username'
PASSWD='password'
SOURCE='/home/username/file.ext'
TARGET='/var/tmp/file.ext'
ftp $HOST <<EOC
user $USER
$PASSWD
rename $SOURCE $TARGET
quit
EOC
# go on with your bash script from this point on
답변2
당신이 사용할 수있는퓨즈
FTP 연결을 기반으로 2개의 퓨전 디렉터리 엔드포인트를 생성한 다음 일반 복사 명령이나 더 복잡한 명령을 실행합니다.
적절한 기반 배포판을 사용한다고 가정합니다(그러나 yum 등과 동일).
curftpfs 패키지를 설치합니다:
apt-get install curlftpfs
FTP에 연결된 디렉터리를 만듭니다.
mkdir /mnt/ftp1
두 번째 것과 동일하게 수행하십시오.
mkdir /mnt/ftp2
호스트 1과 호스트 2를 연결합니다.
curlftpfs user1:pass1@host1 /mnt/ftp1
curlftpfs user2:pass2@host2 /mnt/ftp2
단순 복사 명령 실행
cp -R /mnt/ftp1/somedir /mnt/ftp2
완료되면 브래킷 2개만 제거하면 됩니다.
umount /mnt/ftp1
umount /mnt/ftp2
논평:
이 솔루션은 일반 FTP를 사용합니다. 암호화의 추가 이점을 활용하려면 동등한 명령으로 ftps를 사용할 수 있습니다. 또는 쉘 ftp sftp의 경우 cygwin과 같은 것을 사용하지 않는 한 시스템이 Windows라고 말했습니다. SFTP가 문제를 해결한 것 같아요.