当我尝试将远程(无SSL)文件夹与本地文件夹同步时,lftp:“FEAT negotiation”消息

时间:2017-06-16 13:32:45

标签: linux debian lftp

我想将远程文件夹与使用lftp的本地文件夹同步。

当我第一次安装“lftp”时,我创建了这个脚本:

#!/bin/bash

#get username and password
USER=...        #Your username
PASS=...        #Your password
HOST="..."      #Keep just the address

echo Sync started ...

LCD="/var/www/myfolder/app" #Your local directory
RCD="/app"                  #FTP server directory

lftp -f "
open $HOST
user $USER $PASS
lcd $LCD
mirror --continue --reverse --delete --no-symlinks --exclude .gitkeep --exclude .gitignore --exclude .bower.json --verbose $LCD $RCD
bye
" 

Everythink就像一个魅力。 之后我尝试使用ssl编译lftp(我下载了源代码,在deb软件包中编译并安装它)以同步到ssl ftp服务器。我没弄明白,但我不再需要了,所以我想回到起步状态。

现在,即使我删除lftp并且在没有ssl的情况下再次安装它,当我执行脚本时,我收到此消息:

mkdir `/app' [FEAT negotiation...]

命令刚进入超时(我在调试时看到了它)。我不知道如何解决它。

有任何帮助吗?感谢。

2 个答案:

答案 0 :(得分:3)

我遇到了完全相同的问题。通过在连接字符串中显式提供协议前缀'sftp'来解决此问题。默认情况下,lftp使用“ ftp”作为协议。

HOST="sftp://<hostname>" # <-- make sure that you have specified the protocol here

lftp <<EOF 
set ssl:verify-certificate no  
set sftp:auto-confirm yes
open $HOST -p $PORT -u $USER,$PASSWORD
mirror $RCD $LCD
EOF

答案 1 :(得分:0)

我已经关闭了FEAT功能,它就像一个魅力一样工作。 只需在打开连接之前使用此命令:

set ftp:use-feat false