yeg*_*256 128 linux ftp ubuntu
我需要从 Ubuntu 上传一个文件到 FTP 服务器。此操作应在脚本中完成(在非交互模式下)。什么是正确的语法ftp?
我正在尝试这个,但无济于事:
$ ftp -u ftp://user:secret@ftp.example.com my-local-file.txt
ftp: Invalid URL `ftp://'
Run Code Online (Sandbox Code Playgroud)
Mar*_*rty 216
这是一种方法:
$ ftp -n <<EOF
open ftp.example.com
user user secret
put my-local-file.txt
EOF
Run Code Online (Sandbox Code Playgroud)
或者,在将运行 ftp 命令的用户的主目录中创建(或编辑) ~/.netrc 文件,为其提供适当的权限 ( chmod 0600 ~/.netrc),并添加以下内容:
# ~/.netrc
machine ftp.example.com
login user
password secret
Run Code Online (Sandbox Code Playgroud)
然后省略登录信息,如:
$ echo put my-local-file.txt | ftp ftp.example.com
Run Code Online (Sandbox Code Playgroud)
另外,这里是你如何使用 curl 做同样的事情:
$ curl -T my-local-file.txt ftp://ftp.example.com --user user:secret
Run Code Online (Sandbox Code Playgroud)
小智 21
我可以推荐ftp-upload。这是一个简洁的小工具,您可以通过sudo apt-get install ftp-upload.
用法示例:
ftp-upload -h {HOST} -u {USERNAME} --password {PASSWORD} -d {SERVER_DIRECTORY} {FILE_TO_UPLOAD}
Run Code Online (Sandbox Code Playgroud)
你也可以试试lftp。
下面是一个例子:
lftp -e 'cd folder1/folder2; put /home/path/yourfile.tar; bye' -u user,password ftp.theserver.com
Run Code Online (Sandbox Code Playgroud)
.
小智 5
安装 ncftp 并使用附带的ncftpput工具,语法大致如下:
ncftpput -u ftpuser -p ftppass ftphostname /path/where/to/upload localfile.name
if [ $? -ne 0 ]; then echo "Upload failed"; fi
Run Code Online (Sandbox Code Playgroud)
您甚至可以检查上传状态是好还是坏。普通的ftp客户端也可以与expect一起使用。
您需要修复声明中给出的 URL。您收到错误是因为 URL 不完整 - 它缺少您正在上传的对象的名称。像我在下面所做的那样在“example.com”之后添加文件名后,您将看到单个命令确实按您的预期工作。
尝试这个:
ftp -u ftp://user:secret@ftp.example.com/my-local-file.txt my-local-file.txt