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

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

3天内不再提示

Linux下不同主机之间如何通过网络进行文件共享

dyquk4xk2p3d 来源:良许Linux 2023-04-16 11:04 次阅读

hello,小伙伴们,大家好!今天给大家分享一下Linux下不同主机之间如何通过网络进行文件共享,达到文件在不同主机之间进行拷贝的目的。在平时的工作中,我们需要经常在主机与开发板、同一网络下的不同主机、主机与公网中的主机、主机与云服务器等等之间拷贝文件。那么在这样的环境下如何实现文件拷贝呢,我们来说说下面的几种方式,看看你是否常用

1. 文件共享概述

平常工作中你的电脑通常不是网络上唯一的计算机,如果你在工作环境中,情况尤其如此。当我们想要将数据从一台机器传输到另一台机器时,有时连接一个U盘并手动复制它们可能更容易。但在大多数情况下,如果你使用同一网络上的机器,则传输数据的方式是通过网络文件共享来的更方便些。

下面,我们将介绍几种不同的方法来在网络上的不同机器之间复制数据。我们将讨论一些简单的文件副本,然后我们将讨论如何将整个目录挂载到你的机器上,作为一个单独的驱动器

一个简单的文件共享工具是scp命令。scp命令代表安全复制,它的工作方式与cp命令完全相同,但是允许你从一台主机复制到同一网络上的另一台主机。它通过ssh工作,因此你的所有操作都使用与ssh相同的身份验证和安全性。

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

$scpmyfile.txtusername@remotehost.com:/remote/directory

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

$scpusername@remotehost.com:/remote/directory/myfile.txt/local/directory

3.将目录从本地主机复制到远程主机

$scp-rmydirusername@remotehost.com:/remote/directory

2. rsync

另一个用于从不同主机复制数据的工具是rsync(远程同步的缩写)。rsync非常类似于scp,但它确实有一个主要的区别。rsync使用一种特殊的算法,它可以提前检查是否已经有数据要复制,并且只复制差异。例如,假设您正在复制一个文件,而你的网络中断了,因此你的复制中途停止。rsync将只复制未复制的部分,而不是从头重新复制所有内容。

它还验证使用校验和复制的文件的完整性。这些小优化允许更大的文件传输灵活性,使rsync成为远程和本地目录同步、数据备份、大型数据传输等的理想选择。

一些常用的rsync选项:

  • V -详细输出
  • r -递归到目录
  • h -人性化的可读输出
  • z -压缩更容易传输,非常适合慢速连接

1.在同一主机上复制/同步文件

$rsync-zvr/my/local/directory/one/my/local/directory/two

2.从远程主机拷贝/同步文件到本地主机

$rsync/local/directoryusername@remotehost.com:/remote/directory

3.从本地主机复制/同步文件到远程主机

$rsyncusername@remotehost.com:/remote/directory/local/directory

3. 简易HTTP服务器

Python有一个超级有用的工具,通过HTTP服务。如果你只是想创建一个快速的网络共享,以便网络上的其他机器可以访问,那么这个功能非常棒。要做到这一点,只需进入你想要共享的目录并运行:

$python-mSimpleHTTPServer

这将设置一个基本的web服务器,您可以通过localhost地址访问它。因此,获取运行此程序的机器的IP地址,然后在另一台机器上使用http://IP_ADDRESS:8000在浏览器中访问它。在你自己的机器上,你可以通过在web浏览器中键入:http://localhost:8000来查看可用共享的文件。

4. NFS

Linux最标准的网络文件共享是NFS(网络文件系统),NFS允许服务器通过网络与一个或多个客户端共享目录和文件。NFS也是木荣平常工作中最常用的一种文件共享的方式。

1.设置NFS客户端

$sudoservicenfsclientstart
$sudomountserver:/directory/mount_directory

2.自动挂载

假设你经常使用NFS服务器,并且希望永久挂载它,通常你会编辑/etc/fstab文件,但是你可能并不总是获得到服务器的连接,这可能会导致启动时出现问题。相反,你要做的是设置自动挂载,以便在需要时可以连接到NFS服务器。这是通过自动挂载工具或最新版本的Linux完成的。当在指定目录中访问文件时自动挂载将查找远程服务器并自动挂载它。

5. samba服务器

在计算机的早期,Windows计算机必须与Linux计算机共享文件,因此服务器消息块(SMB)协议诞生了。SMB被用于Windows操作系统之间的文件共享(Mac也有与SMB的文件共享),后来被清理和优化为通用互联网文件系统协议(CIFS)。

Samba是我们在Linux上使用CIFS的Linux实用程序。除了文件共享,还可以共享打印机等资源。

使用Samba创建网络共享

让我们通过基本步骤来创建一个Windows机器可以访问的网络共享:

安装Samba服务器

$sudoaptinstallsamba

配置smb.conf

samba的配置文件位于/etc/samba/smb.conf,这个文件应该告诉系统应该共享哪些目录、它们的访问权限和更多选项。默认的smb.conf已经带有大量注释代码,您可以使用这些代码作为示例来编写自己的配置。

$sudovi/etc/samba/smb.conf

为samba设置密码

$sudosmbpasswd-a[username]

创建共享目录

$mkdir/my/directory/to/share

重新启动samba服务

$sudoservicesmbdrestart

通过Windows访问samba共享

在Windows中,只需在运行提示符中输入网络连接:HOSTsharename。

通过Linux访问Samba/Windows共享

$smbclient//HOST/directory-Uuser

samba安装包包含一个名为smbclient的命令行工具,你可以使用它访问任何Windows或Samba服务器。一旦你连接到共享,你就可以传输文件了。

将samba共享附加到你的系统

你可以在系统上挂载网络共享,而不是逐个传输文件。

$sudomount-tcifsservername:directorymountpount-ouser=username,pass=password

小结

网络中文件共享是我们工作中经常使用的,选择合适的一种方式很大程度上会提高我们的工作效率,达到事半功倍的效果。



审核编辑 :李倩


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

    关注

    51

    文章

    7696

    浏览量

    143987
  • 数据传输
    +关注

    关注

    9

    文章

    1606

    浏览量

    63898
  • 服务器
    +关注

    关注

    12

    文章

    8330

    浏览量

    83445

原文标题:这几种文件共享的方式,很丝滑!

文章出处:【微信号:良许Linux,微信公众号:良许Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linux文件共享的几种方式

    hello,小伙伴们,大家好!我是木荣。今天给大家分享一下Linux下不主机之间如何通过网络
    发表于 04-26 17:23 8006次阅读

    如何共享文件给虚拟机中的Linux系统

    软件开发时,很多时候会用到 Linux 虚拟机,而办公环境,又离不开 Windows ,导致有些文件需要在两个环境之间来回切换,为了方便文件传输,可以为虚拟机内的
    发表于 08-22 15:40 2221次阅读
    如何<b class='flag-5'>共享</b><b class='flag-5'>文件</b>给虚拟机中的<b class='flag-5'>Linux</b>系统

    gcc编译通过但是arm-linux-gcc不能编译,以及如何下载文件到arm

    开发板使用串口可以吗?我的arm板子现在已经烧写了linux。串口里面默认是linux操作。如何将生成的可执行文件下载至arm开发板。我的想法是通过虚拟机与windows的
    发表于 11-02 10:57

    Linux和Windows共享文件的三种方法

    ,这样做的好处就是自己的密码和远程登录的密码分开。6、windows下连接,启动运行,输入\\192.168.1.101,输入smb帐号密码就可以了第二种 通过NFS来访问主机共享文件
    发表于 03-08 09:50

    请问C674x下不能进行文件读写吗?

    8168中 mcfw框架下在alglink中获取图像数据放入文件中,使用fopen(filename,wb)语句,编译通过,但是运行之后,发现并没有建立文件,请问C674x下不能进行文件
    发表于 03-24 20:59

    8168中 mcfw框架下在alglink中获取图像数据放入文件中,请问C674x下不能进行文件读写吗?

    本帖最后由 一只耳朵怪 于 2018-5-28 16:56 编辑 8168中 mcfw框架下在alglink中获取图像数据放入文件中,使用fopen(filename,wb)语句,编译通过,但是运行之后,发现并没有建立文件
    发表于 05-28 06:41

    Linux共享文件使用

    1. Samba Samba 用于Linux 和windows之间共享,ubuntu里面默认没有安装samba 在安装好samba之后,就用开始配置samba服务: Samba服务器主要配置
    发表于 07-11 07:56

    如何通过NFS协议连接访问NAS网络存储

    NFS 文件服务用于Linux 电脑和TNAS 设备之间进行文件传输。使用NFS 文件服务时,首先您需要将TNAS 设备挂载到
    发表于 08-08 14:45

    请问交换机通过SFTP进行文件操作?

    交换机通过SFTP进行文件操作的步骤
    发表于 11-05 06:19

    如何通过SecureCRT在ARM开发板之间进行文件传输?

    如何通过SecureCRT在ARM开发板之间进行文件传输?
    发表于 10-21 08:58

    【米尔王牌产品MYD-Y6ULX-V2开发板试用体验】挂载NFS网络文件系统

    ,对于上层应用来说没有 任何差别,在嵌入式开发时,我们常常利用这个特性在主机共享文件,主要应用场景如下:在NFS服务器上编译应用软件,客户端(开发板)通过NFS访问并运行应用程序
    发表于 12-04 22:28

    怎么样在Linux和Windows之间共享文件?应该使用什么样的工具

    用一些来自 Linux 社区的工具,在 Linux 和 Windows 之间共享文件是超容易的。让我们看看可以做这件事的两种不同方法。
    的头像 发表于 07-09 10:57 4964次阅读

    了解在Linux下可执行文件格式

    Linux下面,目标文件共享对象文件、可执行文件都是使用ELF文件格式来存储的。程序经过编译之
    发表于 05-15 08:49 1807次阅读

    Linux系统的共享内存的使用

    但有时候为了让不同进程之间进行通信,需要让不同进程共享相同的物理内存,Linux通过 共享内存
    的头像 发表于 11-14 11:55 1079次阅读

    Linux系统文件比较工具集合

    Linux系统中,文件比较是一种常见的任务,用于比较两个文件之间的差异。文件比较可以帮助我们找出两个
    的头像 发表于 01-02 13:53 442次阅读