我使用LFTP从服务器传输文件,遗憾的是无法识别PORT命令.我无法控制服务器(不知道服务器是什么),我必须使用主动模式.
这是命令行:
lftp -e 'debug 10;set ftp:passive-mode off; set ftp:auto-passive-mode no; ls; bye;' -u user,password ftp://ftp.site.com
Run Code Online (Sandbox Code Playgroud)
这是调试输出:
<--- 200 Using default language en_US
---> OPTS UTF8 ON
<--- 200 UTF8 set to on
---> OPTS MLST modify;perm;size;type;UNIX.group;UNIX.mode;UNIX.owner;
<--- 200 OPTS MLST modify;perm;size;type;UNIX.group;UNIX.mode;UNIX.owner;
---> USER xxxxx
<--- 331 Password required for xxxxx
---> PASS xxxxxx
<--- 230 User xxxxx logged in
---> PBSZ 0
<--- 200 PBSZ 0 successful
---> PROT P
<--- 200 Protection set to Private
---> PORT 172,16,133,11,146,168 …
Run Code Online (Sandbox Code Playgroud) 我正在使用lftp将文件发送到sftp服务器,但我不知道如何连接密钥和密码.
所以在sftp中,我可以这样做:
sftp -i .ssh/id_rsa.mykey login@my.host.fr
Enter passphrase for key '.ssh/id_rsa.mykey': my passphrase here
Run Code Online (Sandbox Code Playgroud)
那么,我如何使用这种连接方法使用lftp?
我正在寻找一种方法来搜索远程ftp服务器上的所有文件/目录中的特定文本行.
到目前为止,我正在使用Cygwin
ftp连接lftp
.我得到的最远的是使用命令:
ls -l | grep模式
......在lftp模式下.
但是,这只是查看为模式返回的文件名.我想在文件中搜索模式.
也许有一个软件包已经允许这样做.
关于如何做到这一点的任何想法?
我刚刚升级到macOS Sierra并安装brew以获得一些软件包.以前我使用LFTP更快地同步远程服务器上的文件.但是,升级到Sierra后,brew无法再安装LFTP.使用后
brew install lftp
Run Code Online (Sandbox Code Playgroud)
我得到以下输出和错误
Checking out v1.0.1 in /usr/local/Homebrew...
To checkout v1.0.1 in /usr/local/Homebrew run:
'cd /usr/local/Homebrew && git checkout v1.0.1
Error: No available formula with the name "lftp"
==> Searching for similarly named formulae...
This similarly named formula was found:
homebrew/x11/curlftpfs ?
To install it, run:
brew install homebrew/x11/curlftpfs ?
==> Searching taps...
Error: No formulae found in taps.
Run Code Online (Sandbox Code Playgroud)
我相信它找不到公式......但我不确定为什么.有人知道解决方案吗?
no matching host key type found. Their offer: ssh-dss
在安装了 Ubuntu 18.04 的虚拟机上执行 lftp 时,如何修复此错误。
我尝试过添加
Host *
PubkeyAcceptedKeyTypes=+ssh-dss
Run Code Online (Sandbox Code Playgroud)
到我的~/.ssh/config
文件,但我仍然看到该错误。我试图避免编辑我的/etc/ssh/config
文件,因为我无法重新启动我的 ssh 服务器。是否有一个选项可以在运行时通过 lftp 传递?
我想自动上传我的网站文件.但是,远程服务器不支持ssh,所以我尝试下面的lftp命令而不是rsync.
lftp -c "set ftp:use-mdtm no && set ftp:timezone -9 && open -u user,password ftp.example.com && mirror -Ren local_directory remote_directory"
Run Code Online (Sandbox Code Playgroud)
如果未更改本地文件,则此命令不会上传任何文件.但是,我更改文件并运行命令,所有文件都上传.
我知道lftp/ftp的MDTM问题.所以,我尝试了"设置ftp:use-mdtm no && set ftp:timezone -9",但所有文件都上传了,但我只更改了一个文件.
有谁知道为什么lftp镜像--only-newer不会传输"只有更新"的文件?
我无法弄清楚如何使用命令行使用lftp下载和删除远程文件.
使用bash也行.
标志和完整命令行是什么?我能想到的只是镜像命令,但它会在远程服务器上留下文件.
我在Ubuntu服务器上设置了lftp,我正在尝试连接到IIS FTP.在IIS上,它配置了自签名证书,并使用WinSCP连接Ok和Explicit选项SSL.但是使用lftp
命令虽然它连接,当我输入命令cat files
或get [filename]
我收到错误534 protection level negotiation failed
命令就像cd [foldername]
工作正常.我不知道有什么不对.lftp是否需要为该案例设置一些特定选项?
我正在尝试登录ftps
网站.我已经尝试在命令行中输入登录信息(并将set
参数放入~/.lftprc
,然后打开lftp
会话并使用lftp
作业控制语句键入这些参数.无论如何,我一直遇到相同的障碍:
421 Sorry, cleartext sessions are not accepted on this server.
Please reconnect using SSL/TLS security mechanisms.
Run Code Online (Sandbox Code Playgroud)
我得到了以下参数最远,但不断得到上面的错误.
如何lftp
从命令行使用SSL/TLS安全机制?
目标是使用bash(不使用编程expect
)编写对此ftps站点的访问的脚本.
lftp
lftp :~> set ssl-allow false
lftp :~> set passive-mode yes
lftp :~> open ftp.abc.com
lftp ftp.abc.com:~> login theuser
Password:
lftp theuser@ftp.abc.com:~> cd
`cd' at 0 [Delaying before reconnect: 26]
CTRL-C
lftp theuser@ftp.abc.com:~> debug
lftp theuser@ftp.abc.com:~> cd
---- Connecting to ftp.abc.com (XX.XXX.XX.XX) port 21
<--- 220-Welcome …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用LFTP从我的shell脚本中删除FTP服务器中的文件,但由于某种原因它不会使用我的变量,并将它们作为文字.
代码:
USERNAME="theuser"
PASSWORD="verygoodpassword"
SERVER="example.com"
BACKUPDIR="thebackups"
FILETODELETE="uselessfile.obsolete"
lftp -e 'rm /${BACKUPDIR}/${FILETODELETE}; bye' -u $USERNAME,$PASSWORD $SERVER
Run Code Online (Sandbox Code Playgroud)
我想要它做的是运行:
lftp -e 'rm /thebackups/uselessfile.obsolete; bye' -u theuser,verygoodpassword example.com
Run Code Online (Sandbox Code Playgroud)
但它运行:
lftp -e 'rm /${BACKUPDIR}/${FILETODELETE}; bye' -u theuser,verygoodpassword example.com
Run Code Online (Sandbox Code Playgroud)
并且因为它无法在FTP服务器上找到文字文件"/ $ {BACKUPDIR}/$ {FILETODELETE}"并因此抱怨.
我究竟做错了什么???
干杯!