0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

本地计算机与远程服务器之间传输文件常用的方式

CHANBAEK 来源:TIAP 作者:TIAP 2023-02-03 16:26 次阅读

我们经常会有通过 ssh 向远程服务器发送文件的时候,或者从远程服务器拷贝文件到本地的时候。 一般来讲,在本地与远程服务器之间传输文件常用的方式有如下 4 种:

1)scp:这个方法即将被弃用;

2)rsync:目前比较流行的用于文件传输的命令;

3)sshfs:通过 ssh 装载远程目录;

4)sftp 客户端:通过 sftp 访问文件的桌面工具。

另外,对于远程服务器,你还需要知道其地址和系统访问账号(用户名、密码)。 有了这个前提之后,我们再来详细看一下这几种方法。

方法1:使用 scp 命令通过 ssh 复制文件

前面我们提到过,scp 即将被启用,但是,它仍然受到很多人喜欢,因为它的语法类似于 cp 命令。 下面我们看看如何使用 scp 命令。

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

图片

现在我们的任务是这样:将文件从远程服务器拷贝到本地已登录的系统中。

这里有一个通用的语法,它将文件从远程系统上用户的主目录复制到本地登录系统的当前目录。 如下所示:

scp username@ip_address:/home/username/filename .

看到其与 cp 命令的相似之处了吗? 除了必须使用冒号 : 指定用户名和 ip 地址之外,其他几乎是一样的。

图片

在上面的例子中,我将文件 remote.txt 从远程服务器的 /home/abhishek/my_file 目录拷贝到本地计算机的当前目录中。

使用这个命令,你需要知道文件在远程服务器中的完整路径,tab 键补全路径,对于远程系统来说是不起作用的。

将本地文件拷贝到远程服务器中

图片

下面我们来看另外一个例子,使用 scp 通过 ssh 将本地的文件发送到远程服务器。 其语法如下:

scp filename username@ip_address:/home/username

图片

在上面的例子中,我将位于当前目录中的本地文件 local.txt 复制到了远程系统中的 abhishek 用户主目录下。 然后使用该用户登录了远程系统,以验证文件是否被成功拷贝过去。

也可以拷贝目录

我们在前文中提到过,scp 的语法与 cp 命令类似。 所以,使用 scp 也可以拷贝目录,方法是使用 -r 选项。 如下为将本地目录拷贝到远程系统中的语法:

scp -r source_dir username@ip_address:/home/username/target_dir

方法2:使用 rsync 通过 ssh 复制文件和目录

由于 scp 即将被弃用,rsync 是下一个通过 ssh 在远程系统之间复制文件的最佳工具。 实际上,它在很多方面都优于 scp。

其命令语法与 scp 相同。 旧版本的 rsync 必须使用 rsync -e ssh,但是现在已经不需要了。

将远程文件复制到本地计算机

假如我们要将远程系统中的文件复制到当前已经登录到的系统中的当前目录中,其语法结构为:

rsync username@ip_address:/home/username/filename .

参考方法1 中的例子,我们将拷贝 remote.txt 到本地系统当前目录,如下图所示:

图片

将文件从本地计算机拷贝到远程系统

将文件从本地拷贝到远程系统中相应目录中,语法结构如下:

rsync filename username@ip_address:/home/username

依然参考方法1 中的例子,我们将 local.txt 拷贝到远程系统,如下图所示:

图片

那么,怎样复制目录呢?

要复制目录,与 scp 一样,使用 -r 选项:

rsync -r source_dir username@ip_address:/home/username/target_dir

看下面的例子,我复制远程系统中的目录 my_file 到本地系统中:

图片

rsync是一种通用工具。 它本质上是一个在两个目录之间“递归同步”内容的工具,在进行自动备份时很受欢迎。

方法3:使用 SSHFS 访问远程系统中的文件

SSHFS(SSH文件系统)可用于访问远程文件和目录。 但是,这对于复制文件来说不是很方便。

这种方法,我们可以在本地系统上加载远程目录,然后就可以在这个目录和本地系统之间复制文件。 这相当于 windows 系统中的远程桌面的概念。

sshfs 在使用之前需要先安装,在 Debian 或者 Ubuntu 中,可以使用如下命令:

sudo apt install sshfs

安装完成之后,就可以使用 sshfs 了。 一个好的习惯是为其专门创建一个目录:

mkdir mount_dir

然后使用如下方式在远程计算机上,加载此目录:

sshfs username@IP_address:path_to_dir mount_dir

加载完成后,就可以将文件复制到这个目录中,或者在这个目录中复制文件到其他目录,就想它在本地计算机中一样。

cp local_file mount_dir

需要注意的是,装载此目录进行工作,工作完成后,还需要卸载它:

umount mount_dir

下图中的例子,我在本地计算机中新建了一个目录 remote_dir,然后将远程系统中的 my_file 目录装载到本地的 remote_dir 目录中,然后将 remote.txt 文件复制到本地系统,最后卸载该目录:

图片

方法4:使用基于 GUI 的 SFTP 客户端在远程系统之间传输文件

最后一个我们将要介绍的方法,是可以使用 FTP 客户端在远程和本地系统之间传输文件。

FileZilla 是最流行的跨平台FTP客户端之一,安装和使用都很方便。

安装完成后,找到 File -> Site Manager (文件->站点管理器),添加远程系统详细信息,如 IP 地址、SSH 端口号、用户名和密码等。 如下图所示:

图片

连接成功后,窗口会分为左右两个部分,左边为本地文件系统,右侧显示远程文件系统:

图片

拷贝文件的方式也很简单,直接从左边向右边拖拽文件,即可将本地文件复制到远程系统中; 反过来,从右侧拖拽文件到左侧,即复制远程系统中的文件到本地计算机。 复制过程中,在窗口底部会显示进度条。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    6652

    浏览量

    84573
  • 服务器
    +关注

    关注

    12

    文章

    8125

    浏览量

    82548
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21849
  • 客户端
    +关注

    关注

    1

    文章

    282

    浏览量

    16346
  • SSH
    SSH
    +关注

    关注

    0

    文章

    177

    浏览量

    16081
收藏 人收藏

    评论

    相关推荐

    服务器远程不上服务器怎么办?服务器无法远程的原因是什么?

    。 解决办法:一般刚开始拿到的服务器的端口服务器商会主动帮忙设置好的,在这之后更换了的端口记得要加进防火墙策略哦, 不会操作的话可以联系服务器商帮忙操作。 3.已超出远程
    发表于 02-27 16:21

    本地LabVIEW访问远程mysql

    之前只做过LabVIEW对本地计算机ACCESS和SQL SERVER的访问,使用的是LabSQL工具,OLEDB方式,不创建DSN,直接写入连接字符串然后SQL语句对本地数据库进行操
    发表于 12-15 14:38

    labview 显示远程计算机里的图片

    想 通过FTP登陆远程计算机,然后直接显示远程计算机里的图片;而不是先把图片文件下载到本地,再从
    发表于 01-06 13:02

    传真服务器系统的架设方案

    ,用户即可在其计算机桌面的传真客户端软件界面,或使用其计算机中的浏览,进行传真的收发与管理业务。传真服务器的原理与架设方法如下:一、传真板卡部分——传真板卡由于电话线是模拟线路,通过
    发表于 01-16 14:19

    欧盟为计算机计算机服务器出台新生态设计要求

    2013年6月26日,欧盟正式发布了关于计算机计算机服务器的ErP 指令实施条例(EU) No 617/2013。该实施措施于2013年7月17日起正式生效,并在未来几年内分三个阶段实施:生效日
    发表于 03-31 18:14

    使用远程服务器中的SDK编程elf文件:连接到Board失败

    我在远程服务器上进行了设计,我可以使用硬件服务器对FPGA进行编程而没有问题。但是如果我尝试通过远程服务器中的SDK将elf
    发表于 04-01 12:59

    DataSocket功能函数助力LabVIEW远程测控

    Manager中的Default Reader设置为everyhost,则网中的每台客户计算机都可以读取服务器上的数据。Manager对DataSocket Server 的配置必须在本地计算
    发表于 04-10 09:40

    在linux下怎么搭建服务器

    e、点击云服务器进入服务器管理界面:f、此时可以看到你的服务器的公网ip,比如我的(118.89.32.60),之后的所有服务器访问都是通过公网ip进行访问的,为了测试
    发表于 07-08 07:02

    什么是计算机通信

      计算机通信是一种以数据通信形式出现,在计算机计算机之间计算机与终端设备之间进行信息传递的
    发表于 02-17 07:29

    计算机之间的基本数据通讯方式有哪些

    键盘中CPU将键盘按键信息处理完后,通过USB-HID的通讯方式上传计算机的CPU。这样子的处理方式计算机(主控)CPU任务处理,更有利于设备更换(不至于键盘坏了,需要换一台
    发表于 02-23 06:50

    LabVIEW中如何在网络上使用远程VI服务器

    LabVIEW中如何在网络上使用远程VI服务器 如何在网络上使用远程VI服务器? 解答: 首先,需要在远程
    发表于 11-12 20:25

    计算机的客户端和服务器

    计算机的客户端和服务器 一般说来,互联网上的所有计算机可以分成两种类型:服务器和客户端。向其他计算机提供
    发表于 08-05 08:57 1605次阅读

    如何使用ftp命令连接远程ftp服务器

    FTP的全称是文件传输协议,是用于本地计算机远程计算机在网络之间
    的头像 发表于 12-05 17:19 1.2w次阅读

    如何配置FTP服务器

    所有运行FTP协议的服务器相连,以访问服务器上的大量程序和信息。FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP
    的头像 发表于 01-10 09:03 2069次阅读

    ftp服务器有什么作用?

    ftp服务器是一种软件应用程序或服务,有助于通过网络(通常是互联网)在计算机之间传输文件。ftp
    的头像 发表于 09-19 17:24 2637次阅读