• 文件传输、文件挂载MOUNT:NFS、CIFS、ADB、SAMBA


    前言

    最进,手里有一块单板,需要推送本地的脚本到板子上运行,这个就为难到胖虎我了。于是在经过万能的网络的查阅,找到了关于这方面的资料,这里做个整理。参考资料放在文末,感谢前辈们的记录。

    首先是想的挂载–mount,这个命令曾经在我玩linux的时候,有听说过,但是自己的实际操作是没有的,于是最开始就打算使用这个,但是mount挂载那个时候学习的都是挂载实体的硬件设备,而我不可能将电脑作为一个硬件设备链接到单板。

    于是就查了一下,以下分为几个路径开始展开。

    1、基础mount

    Linux mount命令是经常会使用到的命令,它用于挂载Linux系统外的文件。

    mount [-hV]
    mount -a [-fFnrsvw] [-t vfstype]
    mount [-fnrsvw] [-o options [,...]] device | dir
    mount [-fnrsvw] [-t vfstype] [-o options] device dir
    
    • 1
    • 2
    • 3
    • 4

    将 /dev/hda1 挂在 /mnt 之下。

    #mount /dev/hda1 /mnt
    
    • 1

    将 /dev/hda1 用唯读模式挂在 /mnt 之下。

    #mount -o ro /dev/hda1 /mnt
    
    • 1

    将 /tmp/image.iso 这个光碟的 image 档使用 loop 模式挂在 /mnt/cdrom之下。用这种方法可以将一般网络上可以找到的 Linux 光 碟 ISO 档在不烧录成光碟的情况下检视其内容。

    #mount -o loop /tmp/image.iso /mnt/cdrom
    
    • 1
    -V:显示程序版本
    -h:显示辅助讯息
    -v:显示较讯息,通常和 -f 用来除错。
    -a:将 /etc/fstab 中定义的所有档案系统挂上。
    -F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。
    -f:通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使用。
    -n:一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。
    -s-r:等于 -o ro
    -w:等于 -o rw
    -L:将含有特定标签的硬盘分割挂上。
    -U:将档案分割序号为 的档案系统挂下。-L 和 -U 必须在/proc/partition 这种档案存在时才有意义。
    -t:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
    -o async:打开非同步模式,所有的档案读写动作都会用非同步模式执行。
    -o sync:在同步模式下执行。
    -o atime、-o noatime:当 atime 打开时,系统会在每次读取档案时更新档案的『上一次调用时间』。当我们使用 flash 档案系统时可能会选项把这个选项关闭以减少写入的次数。
    -o auto、-o noauto:打开/关闭自动挂上模式。
    -o defaults:使用预设的选项 rw, suid, dev, exec, auto, nouser, and async.
    -o dev、-o nodev-o exec、-o noexec允许执行档被执行。
    -o suid、-o nosuid:
    允许执行档在 root 权限下执行。
    -o user、-o nouser:使用者可以执行 mount/umount 的动作。
    -o remount:将一个已经挂下的档案系统重新用不同的方式挂上。例如原先是唯读的系统,现在用可读写的模式重新挂上。
    -o ro:用唯读模式挂上。
    -o rw:用可读写模式挂上。
    -o loop=:使用 loop 模式用来将一个档案当成硬盘分割挂上系统。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    2、NFS&tftp

    tftp和nfs是在嵌入式Linux开发环境中经常使用的传输工具。

    • NFS ( Network File System ) 是由 Linux 、 UNIX 及其他类似操 作系统使用的互联网标准协议 , 可作为它们的本地网络文件系统。 它是一种活动扩展之下的开放标准 , 可支持本地 Linux 权限和文件 系统功能

    NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源
    在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样
    nfs适用于Linux与Unix之间实现文件共享,不能实现Linux与Windows间的文件共享功能

    具体的可以看这个,写的很详细。

    NFS服务详解

    NFS服务器搭建与配置

    3、SAMBA&CIFS

    Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成。而SMB是Server Message Block的缩写,即为服务器消息块,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。(samba是模仿Windows网上邻居的SMB的通讯协议,将Linux操作系统“假装成”Windows操作系统,通过网上邻居的方式来进行文件传输的。)

    后来微软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能,这样一来,使得Samba具有了更强大的功能。

    NFS 与 samba 一样,也是在网络中实现文件共享的一种实现,但不幸的是,其不支持 windows 平台,samba 是能够在任何支持 SMB 协议的主机之间共享文件的一种实现,当然也包括 windows。Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而 Samba较多的用在了Linux与windows之间的数据共享上面。

    使用samba和windows共享文件时候,请确保windows的NetBIOS(就是网上邻居功能)开启了。

    SMB 是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

    SMB 协议是 C/S 型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。

    《前期samba配置》这里大家百度即可(本文主要给你讲讲samba是个啥)

    # 挂载测试
    # 在其它的虚拟机上执行挂载测试    【注意: -o username=用户名%密码】
    mount -t cifs //192.168.2.10/discuz /webfiles/ -o username=mysql%123456
    
    • 1
    • 2
    • 3
    格式:smbpasswd[选项] [用户名]
    几个常用选项:
    -a 用户名        增加samba用户
    -d 用户名        暂时锁定指定的samba用户
    -e 用户名        解锁指定的samba用户
    -n 用户名        设置指定的samba用户无密码
    -x 用户名        删除samba用户
    无选项时可修改已有的samba用户的密码。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4、ADB

    1.什么是ADB?
    ADB全称为Android Debug Bridge,起到调试桥的作用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑,服务端是Android设备。
    ADB也是Android SDK中的一个工具,可以直接操作管理Android模拟器或者真实的Android设备。

    ADB可以直接操作管理手机模拟器或者真实的手机设备(如华为手机)。它的主要功能有:

    运行设备的shell(命令行)
    管理模拟器或设备的端口映射
    ADB可以直接操作管理手机模拟器或者真实的手机设备(如华为手机)。它的主要功能有:

    运行设备的shell(命令行)
    管理模拟器或设备的端口映射
    计算机和设备之间上传/下载文件
    可以对设备的应用进行卸载安装等
    在App遇到ANR/Crash等bug时,可以通过ADB来抓取日志
    简而言之,ADB就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作!

    具体的ADB指令参看这个链接
    ADB 命令知多少?详细 ADB 命令大全来啦

    5、NAS、CIFS、NFS之间的关系

    NAS,网络附加存储,中心词“存储”,是的,它是一个存储设备。比如我装个openfiler或freenas系统,再加几块硬盘,对外提供NAS功能,那么这个openfiler或freenas服务器就变成了很简单的“NAS设备”。当然,如果是对于小公司来说,一个openfiler做NAS设备足够了。

    而CIFS,是微软提出的,全称叫通用internet文件共享,它是一种协议。NFS,网络文件共享,也是一种协议。那两者之间有什么区别呢?一句话,CIFS用于UNIX和windows间共享,而NFS用于UNIX和UNIX之间共享。

    所以,NAS是一个设备,一个功能。而CIFS/NFS是一种协议。可以在NAS上启用CIFS/NFS协议,这样,用户就能使用CIFS/NFS协议进行访问了。

    参考资料:
    https://blog.csdn.net/mybluetiankong/article/details/20525263

    https://www.cnblogs.com/skiing886/p/9125451.html

    【Linux】Samba服务器超详细安装、配置(附带各种问题解决方式)

    https://blog.csdn.net/shenyuanhaojie/article/details/121873174

    https://blog.csdn.net/weixin_43283381/article/details/82851097

    http://testingpai.com/article/1649491164417

  • 相关阅读:
    深度!程序员生涯的垃圾时间(上)
    JZ11 旋转数组的最小数字
    java计算机毕业设计医疗器械销售电子商城源码+系统+mysql数据库+lw文档
    初识AJAX基础(一)
    jenkins-2.426.1-1.1.noarch.rpm 的公钥没有安装
    如何使用tornado将python代码封装成api
    今天面了个腾讯拿38K出来的大佬,让我见识到了基础的天花板
    Spring Boot与Shiro实现权限管理02
    重学Java的第一章
    如何启动Kotlin协程
  • 原文地址:https://blog.csdn.net/weixin_45264425/article/details/126943323