如何使用 FTP 或 SSH 从命令行上传文件?

如何使用 FTP 或 SSH 从命令行上传文件?

我以前从未这样做过,我正在创建一个 bash shell 脚本来帮我做这件事。我还将通过 ssh 连接来做一些事情(我已经知道如何做了)。所以也许有一种方法可以通过 ssh 上传文件,这样我就可以在一次连接中完成所有操作?

我怎样才能做到这一点?

#!/bin/sh

cd ./files-to-upload
#upload the files

答案1

您可以使用scp复制到远程机器。

scp <file to upload> <username>@<hostname>:<destination path>

答案2

您可能正在寻找 SCP 或类似的东西。

#!/bin/bash

cd ./files-to-upload
scp * user@host:/path/to/upload/files/to

当然,这必须根据您的喜好进行调整。将 user@host 替换为您的真实信息。系统将提示您输入密码才能上传。

答案3

如果你确实必须使用 ssh (而不是 scp),你可以执行以下操作:

for filename in *; do
  cat $filename | ssh user@host "cd /path/to/upload/files/to; cat - > $filename"
done

但常规 scp(如唐根斯建议是最好的。

答案4

scp 是更好的答案,因为它可以通过 SSH 加密。

但是,如果您确实想通过标准 ftp 执行此操作,请查看 ncftpput。它是专门为上传文件而设计的:

名称 ncftpput - 用于脚本的 Internet 文件传输程序

摘要 ncftpput [选项] 远程主机远程目录本地文件...

相关内容