我以前从未这样做过,我正在创建一个 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 [选项] 远程主机远程目录本地文件...