网格

 找回密码
 立即注册

Centos7网络存储NAS之CIFS

[复制链接]
69伙伴 发表于 2022-6-28 00:45:56 | 显示全部楼层 |阅读模式
centos
/etc/fstab文件的作用
磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。
系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。
详细参考
https://blog.csdn.net/youmatterhsp/article/details/83933158

服务端配置


  1. CIFS:Common Internet File System Windows 和 Unix 系统之间共享文件的一种协议
  2. CIFS:客户端主要是 Windows
  3. 支持多节点同时挂载以及并发写入

  4. 一、Samba 服务器 (存储端)
  5. yum -y install samba
  6. mkdir /data
  7. chmod 777 /data
  8. cp -rf /etc/hosts /data/
  9. useradd alice
  10. useradd jack
  11. smbpasswd -a alice
  12. smbpasswd -a jack

  13. 1. 安装软件
  14. [root@samba ~]# yum -y install samba
  15. 2. 建立共享所需要目录
  16. [root@samba ~]# mkdir /data
  17. [root@samba ~]# chmod 777 /data
  18. [root@samba ~]# cp -rf /etc/hosts /data/
  19. 3. 建立访问用户
  20. [root@samba ~]# useradd alice
  21. [root@samba ~]# useradd jack
  22. [root@samba ~]# smbpasswd -a alice
  23. [root@samba ~]# smbpasswd -a jack
  24. 4. 通过 Samba 共享
  25. [root@samba ~]# vim /etc/samba/smb.conf
  26. [data]
  27. path = /data
  28. ;valid users = alice jack
  29. ;hosts allow = 192.168.122.
  30. ;write list = jack
  31. writable = yes
  32. 5. 启动 Samba 服务
  33. [root@samba ~]# systemctl start nmb smb
  34. [root@samba ~]# systemctl enable nmb smb

  35. ##若开启防火墙,则使用下列配置
  36. firewall-cmd --permanent --add-service=samba
  37. firewall-cmd --permanent --add-service=samba-client
  38. firewall-cmd --permanent --add-service=mountd
  39. firewall-cmd --reload
复制代码



客户端配置


  1. Windows 端:

  2. 1 windows+r调出运行窗口,输入:
  3. \\192.168.1.16      #####服务端IP

  4. 2 可将文件,"映射网络驱动器".

  5. Linux 端: [了解]
  6. # yum -y install samba-client cifs-utils
  7. 1. 查看存储端共享 [可选]
  8. # smbclient -L 192.168.1.16 --user=alice%tianyu //查看服务器共享,("用户名%密码")
  9. 2. 手动挂载 [可选]
  10. # mkdir /mnt/cifs
  11. # mount -t cifs -o user=alice,pass=tianyu //192.168.1.16/data /mnt/cifs
  12. 3. 自动挂载到指定目录
  13. # vim /etc/fstab
  14. //192.168.1.16/data /mnt/cifs cifs user=alice,pass=tianyu 0 0
  15. # mount -a
  16. 4. 查看挂载
  17. #df -h
  18. #mount
  19. //192.168.1.16/data on /mnt/cifs type cifs (rw,relatime,vers=1.0,cache=strict,username=alice,domain=SAMBA,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.1.16,unix,posixpaths,serverino,mapposix,acl,rsize=1048576,wsize=65536,echo_interval=60,actimeo=1)

复制代码


注意777权限
mount -t cifs -o "rw,dir_mode=0777,file_mode=0777,username=wgpro.com,password=wgpro.com" \\\\192.168.42.3\\Web-DB\\  /www/wwwroot/nas

  1. vim /etc/fstab
  2. 增加以下内容
  3. //192.168.1.1/share                /data        cifs        defaults,username='username',password='your password'     0 0
  4. 共享路径 挂载点 文件类型 挂载参数(共享的认证账号和认证账号的密码等参数)

  5. 查看挂载
  6. df -Th
复制代码

67.png


方法二:
通过开机自动加载rc.local的方式自动挂载
  1. echo "mount -t cifs //192.168.1.1/share/ /data -o username='uaername',password='your password'" >> /etc/rc.local
复制代码

这样在开机的时候系统会执行/etc/rc.local而自动挂载samba的共享文件夹

执行命令,让共享文件夹被挂载
  1. bash /etc/rc.local
复制代码

当看到//开头 时就代表成功了
68.png




备注:折腾半天我发现我的 环境特殊。不适合以上 得写个脚本定时执行

nas vpn -->服务器 -->挂载vpn nasIP
当服务器重启好后,vpn还没拨入进来。。。
所以得写个简单的判断脚本来定时检测是否挂载

  1. 过滤下链接 多写点也行 比如//192.168
  2. df -Th | grep //


  3. if [ $? -ne 0 ]; then
  4.     echo "failed"
  5. else
  6.     echo "succeed"
  7. fi



  8. 另外shell中的比较符号如下:
  9. -eq         等于
  10. -ne        不等于
  11. -gt        大于
  12. -lt        小于
  13. -ge        大于等于
  14. -le        小于等于
复制代码




最终脚本
记得账号密码是要改下的。
  1. #!/bin/bash
  2. df -Th | grep //
  3. if [ $? -ne 0 ]; then
  4. mount -t cifs -o "rw,dir_mode=0777,file_mode=0777,username=wgpro.com,password=wgpro.com" \\\\192.168.42.3\\Web-DB\\ /www/wwwroot/nas
  5. fi
复制代码

回复

使用道具 举报

【附件·直接下】 不用注册

联系我们 ( 京ICP备16001788号 ) | 京公网安备 11010502049360号 | 2012- WGPro.CoM |

GMT+8, 2022-12-1 23:39

Powered by Discuz! X3.4

快速回复 返回顶部 返回列表