#私藏项目实操分享# 网络文件共享

网络文件共享
FTP
实现基于MYSQL验证的vsftpd虚拟用户
NFS文件系统
客户端NFS挂载
SAMBA
数据实时同步(inotify+rsync)
文件共享在一定程度上可以起到备份的作用
常见的客户端是什么意思啊存储方式:
DAS:直连存储,普通主机形式,组成就是服务器磁盘,截止是SCSI或者光纤,数据类型以块的方式本机管理;
SAN:存储客户端打区域网络,用户在客户端上看到的是空间,远程服务端映射成为客户端的一块磁盘,数据类型是块;
NAS:网络连接存储(基于文件协议FTP/NFS/SAMBA),数据类型在服务器租用客户端是以文件方式。
FTP
文件传输协议FTP
File Transfer Protocol 早期的三个应用级协议之一
基于C/S结构
服务器端双通道协议:数据和命令连接客户端和服务端区别(命令通道走的就是命令,协议随机端口)
数据传输格式:二进制(默认)和文本
两种模式:服务器角度
主动(PORT style):服务器主动连接
命令(控制):客户端:随机port --linux系统- 服务器:tcp21
数据:客户端:随机port ---服务器:tcp20
被动(PASV style):客户端主动连接,每一次都有变化
命令(控制):客户服务器租用端:随机port --- 服务器:tcp21
数据:客户端:随机port ---服务器:随机port
服务器被动模式数据端口示例:
227 Entering Passive Mode (172,16,0,1,224,59)
服务器数据端口为:224*客户端;256+59
被动模式每次传输开启,传输结服务器租用多少钱一年束关闭
ftp连接之后默认是被动模式,输入passi客户端;ve进入主动模式
firewal服务器配置ld可以自动分析识别ftp协议的端口,iptables还不支持,需要ftp模块
软件名为:系统运维工作内容vsftpd(系统自带),默认共享目录是pub,(lftp界面更清晰)
wget、curl都可以下客户端版本低怎样升级
get、mget
put、mput客户端微信(带m的是批量)
sftp就是给予ssh协议的ftp
vsftpd默认是支持匿名下载,不支持匿名上linux命令传;操作系统账号可以下载,可以上传
windows客户端默认使用的是主动模式,linux客户端默认是使用被动模式
配置文件部分:
ftp的默认日系统运维工程师


实现基于SSL的FTPS
 查看是否支持SSL
ldd ​​which vsftpd​​ 查看到libssl.so,看到调用了ssl库
 创建自签名证书
cd /etc/pki/tls/certs/
make vsftpd.pem
openssl x509 -in vsftpd.pem -noout –text
 配置vsftpd服务支持SSL服务器租用:/etc/vsftpd/vsftpd.conf
ssl_ena客户端版本低怎样升级ble=YES系统运维工作内容 启用SSL客户端打开
allow_anon_ssl=NO 匿名不支持SSL
force_local_logins_ssl=YES 本地用户登录加密
for客户端下载安装ce_local_da服务器租用ta_ssl=YES 本地用户数据传输加密
rsa_cert_file=/etc/pki/tls/certs服务器地址/vsftpd.pem
 用filezilla等工具测试
利用系统自带的自签名证书:pem 文件里是带自签名证书和私钥


vsftpd虚拟用户
实现基于文件验证的vsftlinux系统安装pd虚拟用户
(Plinux常用命令DF里有,每次新增加用户,要再输入一遍,不方便)
ftp的/目录是不能有写权限的
文档里20页左右有具体的步骤-------


实现基于MYSQL验证的vsftpd虚服务器操作系统银河麒麟拟用户
pam_userdb的作用是验证数据库里的用linux系统安装户文件
环境:一台ftp服务器,一个数据库服务器
先搭数据库服务器:
建库,建表,设权限;
新建用户,密码加密;
建个账户授权从网络客户端已经从游戏服务器连接断开连过来,因为只需要验证,所以只开放查询即可;
接下来是FTP服务器,
首先需要安装vsftpd服务;
需要pam模块,这个软件叫pam-mysql,centos7epel源里没有,得编译安装:
依赖包,还有gcc++
解压
指定库文件的路径,放在p客户端打开am的库目录里
出现模块即可
修改pam模块的配置文件
添加认证信息
把所有的虚拟用户映射成系统账户
这个用户的家目录对这个用户来讲不允许有写权限
如果用户要上传文件,可以专门建立一个上传的目录,给与系统账户权限,ftp的配置文件也得开启上传功能
修改pam配置文件,指名服务名,把所有用户全部映射成系统用户,重启服务
如果想让不同linux是什么操作系统的用户拥有不同的权限,还需要设置
比如让ftpuser1能上传
可以匿名上传,也可以建立文件夹
如果客户端版本低怎样升级想让不同的用户只能访问自己不同的文件夹,还需要设置客户端已经从游戏服务器连接断开
vim /etc/data/ftpuser2
如果想让user2有上传的权限,除了跟上面user1一样三行之客户端已经从游戏服务器连接断开外,还需要设置文件系统级别的权限,默认用户的根目录设权限也不行,得是子目录客户端是什么意思啊
FTP的缺点


NFS文件系统
centos7可以解决依赖性
共享的规则文件/etc/export服务器s,写共享的目录和共享的范围(后面加rw就是读写,还有权限压榨)
重启 expotrfs -r平滑重启,-v\显示,
给共享目录设置用户权限
客户端访问的命令showmount
客户端挂载
客户端NFS挂载
实现基于普通用户wang的家目录的漫游,登录不同的机器,看到相同的目录
nfs服务器
先建共享目录,重启服务,开启启动客户端是什么意思啊
vim /etc/exports.服务器怎么搭建d/wang.exports
客户端服务器内存条和普通内存条区别
挂载下试试,mount -a
自动挂载,autofs服务(自带),指定挂载规则
父目录是启动服务生成的,子目录是访问的时候生成的
最简单的挂载:


SAMBA
服务器地址于SMB协议,CIFS是一种文件系统
windows和linux查看端口都服务器系统可以用netstat命令
相关包:
Samba 提供smb服务
Samba-client 客户端软件
samba-common 通用软件
cifs-utils smb客户端工具
samba-winbind 和AD相关
管理模式:域/工作组客户端版本低怎样升级
客户端;
服务器怎么搭建像这台电脑,就是已经加入域了
-linux删除文件命令-----0
linux访问windows共享目录
首先在windows某个公共盘建立一个共享目录,给权限(桌面不行,桌面是等于登录用户的家目录),windows命名的目录和共享目录名字可以不一样(后面加个$符客户端和服务端区别号,windows识别为隐藏,linuxlinux系统没用);
如果在windows创建一个共享目录,用linux访问的话,默认是用客户端下载安装root用户,而windows是没有root用户的,需要创建系统账户,然后变为samba账户,这里就比如创建一个test用户,密客户端英文码是centos;
然后用linux客户端就客户端下载安装可以查看了,-L只是查看,登录的话需要全路径
挂载上去更方便
查看访问情况
删除共享
删除用户
虽然SAMBA解决了跨系统共享的问题,但是生产中一般用windows的不多,所以用的比较少


linux Samba server
139、445端口,nmd是解析服务,用137、138端口
服务器租用为Samba客户端打服务linux是什么操作系统端,必须有linux客户端打专有的Samba账号
首先创建系统账号
然后映射为Samba账号,-a是加入,不加的话是更改,-d是禁用,-x是删除
查看Samba账号的目录和命令:
刚才创建用户忘了给家目录,这样访问会有问题,所以需要建立用户家目录,三个同样操作
查看smb服务的状态


数据实时同步(inotify+rsynclinux命令
数据包:xinetd rsync inotify-tools
inotify有默认监控的最大值,生产中不够用的话,可以调大/proc/sys/fs/inotify三个值
max_queued_events:ino服务器内存条和普通内存条区别tify #事件队列最大长度,如值太小会出现 EventQueue Overflow 错误,默认值:16384
max_user_watches #可以监视的文件服务器数量(单进程),默系统/运维认值:8192
max_user_instances #每个用户创建inotify实例最大值,默认值:128
总结inotify的用法:-客户端;m始终监听、-r递归、-q输出少量信息、-服务器怎么搭建o打印输出到文件、--timefmt <fmt> 指定时间输出格式、--format <fmt> 指定的输出格式;即实际linux监控输出内容、-e 指定监听指定的事件,如果省略,表示所有事件都进行监听
[root@mini71 ~]#inotifywait -mrq /data/www -o /data/inotfy.txt --timefmt "%客户端英文Y-%m-%d %H:%M" --format "%T %w%f event客户端;: %;e" -e create,delete,moved_to,close_write,attrib
改动
[root@mini71 ~]#tail -f /data/inotfy.txt
2020-04-21 22:02 /data/www/ eve服务器租用nt: OPEN;ISDIR
2020-04-21 22:02 /data/www/ event: CLOSE_NOWRITE;CLOSE;ISDIR
2020-04-21 22:03 /data/www/f1.txt event: CLOSE_WRITE;CLOSE
2020-04-21 22:04 /data/www/f1.txt event: CLOSE_WRITE;CLOSE
配置 rsync 服务器端的配置文件客户端打
vi /etc/rsyncd.conf
uidlinux = root #
gid = root #
use chroot = no #
max connectiolinux删除文件命令n系统/运维s服务器系统 = 0 #最大连接数
ign服务器怎么搭建ore errors #忽略错误
exclude =linux lost+found/ #针对不检查的文件夹
log file = /var/log/rsyncd.log #日志文件
pid file = /var/run/rsyncd.pid #进程文件
lock file = /客户端无法与登录队列进行通讯var/ru系统运维工作内容n/rsyncd.lock #锁文件
r系统运维工程师everse lookup = no #反向解析
hosts allow = 192.168.8.0/24 #允许的地址列表
[backup] #模块名称
path = /backup/ #路径
comment =系统运维工资一般多少 backup #描述
read only = no #知只读
auth users = rsyncuserlinux操作系统基础知识 #rsync提供的账号
secrets file = /etc/rsync.pass #账户密码文件
比如客户端已经从游戏服务器连接断开:72是rsync服务端,71是inotfy服务端,实现数据实时同步
配置rsync服务端配置文件
[root@mini72 ~]#vim /etc/rsyncd.conf
uid = root
gid = root
use chro客户端;ot = no
max con客户端打nections = 0
ignore errors
exclude = lost+服务器操作系统银河麒麟found/
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock fil客户端版本低怎样升级e = /var/run/rsy客户端;ncd.lock
reverse lookup = no
hosts allow = 192.168.36.0/24
[backup]
path = /backup/
comment = backup
read only = no
auth users = rsyncuser
secrets file = /etc/rsync.pass
写密码文件
[root@mini72 ~]#echo "rsyncuser系统运维工作内容:123456" >/etc/rsync.pass
[root@mini72 ~]#cat /etc/rsync.pass
rsyncuser:123456
设权限
[root@mini72 ~]#chmod 600 /etc/rsync.pass
启动服务
[root@mini72 ~]#rsync --daemon
对应建立备份目录
[root@mini72 ~]#mkdir /backup
inotify服务端linux是什么操作系统测试同步
[root@mini71 ~]#rsync -avz --password-file=/etc/rsync.pass /data/www
sending i服务器操作系统银河麒麟ncremental file list
www/
wwlinux系统安装w/f1.txt
sent 471 bytes received 39 bytes 1,020.00 bytes/sec
total size is 646 speedup is 1.27
[root@mini72 ~]#ls /backup/
www
##注意/data/www后面加不加斜杠,不加斜杠可以把整个目录都复制过来
编写数据实时同步的脚本
[root@mini71 ~]#vim inotify_rsync.s服务器操作系统银河麒麟h
#!/bin/bash
SRC='https:/服务器配置/blog.51cto.com/data/www'
DEST='rsyncuser@192.168.36.72::backup'
inotifywait -mrq --timefmt '%Y-%m-%d %H:%M' --format '%T %w %f' -e create,delete,moved_to,close_write,att客户端打开rib ${SRC} |while read DATE TIME DIR FILE;do
FILEPATH=${客户端下载安装DIR}${FILE}
rsync -az --delete --password-file=/etc/rsync.plinux常用命令ass $SRC $DEST &&am服务器怎么搭建p; echo "At ${TIME} on ${DATE}, file $FILEPATH was backuped up via rsync" >> /var/log/changelist.log
done
加执行权限
[root@mini71 ~]#chmod +x inotify_rsync.sh
执行脚本
[root@mini71 ~]#. inotify_rsync.sh
测试
[root@mini71 ~]#touch /data/www/test.服务器txt
[root@mini72 ~]#ls /backup/www/
f1.txt test.txt
实时观察watch
rsync是服务器的作用基于文件级的同步,在处理一些单个的大客户端无法与登录队列进行通讯文件修改时,会同步整个文件,这一点是性能弊端


从跨平台角度说,
samba, ftp差不多, 而nfs不支持windows平台
从挂载角度说linux操作系统基础知识,
samba, nfs可以把linux常用命令远程目录挂载到本地目录上, 对用户是透明的. 而ftp则不行
从使用范围上说,
samba, nfs最好是限定在局域网内, 不要暴露在公网上. 而ftp则不同, 既可以面向内网, 也可以是公网.
客户端版本低怎样升级面向对像来说,
三者都支持文件, 但samba还支持打服务器系统印机, 以及作windows域管理器服务器的作用
samba就是网络邻居, ftp就不用说了. nfs在linux平台上和samba差不多. 所以你可以自己比较下, 网上邻居和ftp差别.