linux实现远程文件夹共享-samba

目录

  • 问题描述
  • Samba
  • 如何挂载
    • 常用参数
    • 临时挂载实例
    • 一种长期挂载方法(已失败,仅供参考)
    • 查看挂载
    • 取消挂载
      • umount失败

问题描述

我的代码需要访问存在于两个系统(win和linux)的文件夹,我不是文件夹的创建者,只需要对它们进行读取,不做写操作。

Samba

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。

所以要在win系统,装一个samba,linux已经有了(mount --version可查看版本)。

如何挂载

常用参数

-t:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
-o rw:用可读写模式挂上
dir_mode和file_mode:指定文件夹和文件的权限,三位数字。如果修改了,会覆盖默认的755

mount参数参考:
https://blog.51cto.com/zkxfoo/1758529

临时挂载实例

mount -t cifs -o username=xxx,password=xxx,rw,dir_mode=0777,file_mode=0777  //ip/远程路径 /本地路径

这句命令表示将 ip/远程文件夹路径 挂载到 /本地路径,那么访问本地路径就可以看到远程文件夹下的内容。

这样只能临时挂载,每次开启xshell连接时都会找不到(目标文件夹,ls会卡死)

一种长期挂载方法(已失败,仅供参考)

  1. 修改 /etc/fstab
    格式:欲挂载位置\t本地位置\t文件系统种类(这里是cifs,是windows smb的)\t其他参数(如用户名、密码、挂载后的权限等)\t0(转储频率:0:从不备份 1:每日备份2:每隔一天备份)\t0(自检次序:0不自检,1首先自检,通常只能被/使用,2等数字为1的自检完成后,再进行自检)
    在这里插入图片描述
    最后三行是挂载命令,第一列是//ip/远程路径 ,第二列是/本地路径,第三列是cifs,第四列是defaults,username=用户名,password=密码,rw,dir_mode=0777,file_mode=0777,和前面一样;后两列可以留0

  2. 生效:重启服务器或者mount -a -t cifs
    -a 自动挂载所有(/etc/fstab文件中)支持自动挂载的设备。这里会挂载上之前没有挂载的东西。-t 指定类型

但是关闭xshell再次启动后,还是du会卡。很可能是因为某些原因挂载失败了。
可以用 strace 命令(如df\du\ls之类的)看是卡在哪一步了

这个方法不行,我这个服务器没有systemctl(替换为service XXX restart,提示找不到该服务)
service --status-all 可以查看本机所有服务,也确实没有proc*这个服务。

很可能是隔一段时间就失败了(没关xshell也卡了ls,cd,df等等),所以需要的时候,请临时挂载,不要改文件/etc/fstab!!!!

如果真的卡死了,先用root登录本机,然后kill掉卡住的进程,接着umount挂载位置(尤其是远程连接的,不确定的话先用trace诊断),可能需要-fl来强制去掉挂载,然后去改/etc/fstab(如果改动了,再用mount -a生效)。

查看进程号
ps -ef | grep 命令
第二列时pid,用kill -s 9 pid可以结束进程。需要root权限
在这里插入图片描述

最好临时挂载。

查看挂载

列出磁盘使用情况:df

取消挂载

umount 本地挂载路径

使用被挂载的路径也可以,但是如果用本地路径就必须是精确的,不能是父级文件夹

umount失败

那就等一下。
-f是强制卸载(在无响应的NFS系统的情况下),-l 隔离文件系统后,全部清除

umount -fl 本地挂载路径

在这里插入图片描述
上面这样提示的话,此时该文件夹可能会有问题,进文件夹后ls/ll等无反应,而且root也无法删除
fuser -k 是杀死访问指定文件的所有进程
在这里插入图片描述

此时需要等一会儿,再次umount这个文件夹。然后权限就正常了,可以删除了。

fuser用法
用于报告进程使用的文件和网络套接字。fuser命令列出了本地进程的进程号,那些本地进程使用file,参数指定的本地或远程文件。对于阻塞特别设备,此命令列出了使用该设备上任何文件的进程。
在这里插入图片描述

格式:fuser 选项 参数
-a:显示命令行中指定的所有文件;
-k:杀死访问指定文件的所有进程;
-i:杀死进程前需要用户进行确认;
-l:列出所有已知信号名;
-m:指定一个被加载的文件系统或一个被加载的块设备;
-n:选择不同的名称空间;
-u:在每个进程后显示所属的用户名。
-x 与 -c 或 -f 连用,报告除标准 fuser 输出以外的可执行的和可载入的对象。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/513913.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux开发板移植rz、sz指令实现串口传输文件

一、开发环境 实现开发板和电脑通过串口来收发互传文件。 开发板:NUC980开发板 环境:Ubuntu 22.04.3 LTS 64-bit lrzsz的源码包:例如 lrzsz-0.12.20.tar.gz,下载地址https://ohse.de/uwe/software/lrzsz.html 二、移植步骤 在开发板上移植…

『python爬虫』ip代理池使用 协采云 账密模式(保姆级图文)

目录 实现效果实现思路代码示例总结 欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 实现效果 在官网原版demo基础上小改了一下,修正了接口错误(把2023改成2024就可以了),原版demo只能测试单个ip,我这里批量测试所有…

【Linux实践室】Linux常用命令:文件操作|文件夹操作

🌈个人主页:聆风吟 🔥系列专栏:Linux实践室、网络奇遇记 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. ⛳️任务描述二. ⛳️相关知识2.1 🔔Linux文件操作2.1.1 👻创建文件2…

Neo4j 新手教程 环境安装 基础增删改查 python链接 常用操作 纯新手向

Neo4j安装教程🚀 目前在学习知识图谱的相关内容,在图数据库中最有名的就是Neo4j,为了降低入门难度,不被网上很多华丽呼哨的Cypher命令吓退,故分享出该文档,为自己手动总结,包括安装环境,增删改查…

Scala 之舞:林浩然与杨凌芸的 IDEA 冒险

Scala 之舞:林浩然与杨凌芸的 IDEA 冒险 The Dance of Scala: The IDEA Adventure of Lin Haoran and Yang Lingyun 在那个阳光明媚的日子里,林浩然如同一位英勇的探险家,踏入了 Scala 的 IntelliJ IDEA 开发环境的奇妙领域,他带着…

CSS的三种定位,web前端开发入门学习

正文 js逻辑判断 1)请写出下面的答案? 内存泄漏 1)哪些操作会造成内存泄漏? 2)js内存泄漏的解决方式 dom 1)dom是哪种基本的数据结构? 2)dom操作的常用api有哪些? 3)dom节点的attribute和property有何区别? 4)dom结构操作/ …

阿里云2核4G服务器支持多少人同时在线?

2核4G服务器支持多少人在线?阿里云服务器网账号下的2核4G服务器支持20人同时在线访问,然而应用不同、类型不同、程序效率不同实际并发数也不同,2核4G服务器的在线访问人数取决于多个变量因素: 2核4G:2核CPU和4G内存对…

网络信息安全:11个常见漏洞类型汇总

一、SQL注入漏洞 SQL注入攻击(SQL Injection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。 在设计程序,忽略了对输入字符串中夹带的SQL指令的检查&…

183基于matlab的非线性调频模态分解(VNCMD)

基于matlab的非线性调频模态分解(VNCMD),一种基于变分方法的信号分解技术,它将信号分解为多个模式。能够处理非线性调频信号,且对噪声具有较好的鲁棒性。VNCMD的基本原理是通过最小化信号与模式之间的差异来实现信号的分解。程序已调通&#…

在Vue中搭建Three.js环境(超详细、保姆级),创建场景、相机、渲染器《一》

目录 Three.js简介创建vue项目引入Three.js实际操作环节文件目录创建初始化场景、相机 Three.js简介 Three.js 是一款基于 WebGL的 JavaScript 3D 库,它封装了 WebGL API,为开发者提供了简单易用的 API 来在 Web 浏览器中展示 3D 图形。Three.js 提供了…

嵌入式硬件设计实例:基于STM32的流水灯原理图和PCB设计

最近本来在忙别的事,大约忙到五一以后吧,没有时间研究一些深入的知识。本来想停更的,但是刚刚申请到博客专家,想想还是得更新点文章。这里就把一些以前我做过的一些简单的硬件设计拿来出来复习一下。 本篇文章就来介绍一下&#…

代码随想录算法训练营第九天

28. 实现 strStr() &#xff08;本题可以跳过&#xff09; 方法&#xff1a; 方法一&#xff1a; 暴力法 i 表示最多能移动到n-m位置&#xff0c; 超过则退出循环。j表示haystack 初始位置k表示needle的初始位置如果haystack [j] needle[k]且 k<m 则 j, k; 如果 km 则返…