将文件从本地主机复制到远程主机

将文件从本地主机复制到远程主机

这个答案一定存在于某个地方,因为它非常基础,但我找不到它。

我在本地计算机上有一个文件,我想将其复制到远程主机。我知道如何使用 scp,但如果我从本地主机向远程主机执行此操作,则会收到权限错误。我可以使用 root 权限登录远程主机,但我不知道如何识别我的本地计算机(我尝试了内部和外部 IP 地址,但两次都超时了)。这两种方法对我来说都适用(尽管理想情况下我想知道如何同时执行这两种方法!)

这是更好地学习 Linux 的练习的一部分,因此如果我没有提供必要的信息,请告诉我具体需要什么,我会尽力详细说明。

(附加问题:非常希望得到有关优秀 Linux 资源的任何推荐!)

答案1

这是确切地创建的目的是什么rsync!只要您有远程计算机的 SSH 访问权限,并且远程计算机已rsync安装,那么您可以:

rsync -avz /path/to/local/file username@host:/destination/path

这将通过 SSH 连接到hostas username,启动私有rsync守护程序,然后通过加密的 SSH 隧道将本地文件复制到远程位置。您还可以先指定远程位置,然后指定本地位置,以将远程文件复制到本地系统。如果您指定要复制的文件夹,它将复制该文件夹及其所有内容。

旗帜分类:

  • -a“存档”——递归复制,并尽可能保留属性/权限。
  • -v“详细”- 复制后打印出每个文件名
  • -z“压缩” - 数据在网络上传输时使用 gzip 压缩。传输速度更快,带宽更低,但 CPU 处理能力更强。

如果您正在传输大文件,该--progress选项可能也会有用。

答案2

ssh username@remotehost tee /home/user/example.file < ./example.local.file

它的作用是:

  • 读入本地文件的内容./example.local.file
  • remotehost以用户身份通过​​ SSH 登录username
  • 发射tee在远程主机上
  • 并指示它将得到的输入放入/home/user/example.file

优点:

  • 简单的

缺点:

  • 覆盖整个文件,无论远程文件的状态如何
  • 这也意味着整个文件将始终通过网络传输
  • tee将回显收到的所有内容;对于二进制文件来说,这可能是不理想的

相关内容