企业级共享文件系统_企业文件共享服务器用什么系统-程序员宅基地

技术标签: 运维  linux  tcp/ip  

第1章 企业级共享文件系统

1.1 vsftp

1.1.1VSFTP 概述

1.简介
  • FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。用于 Internet 上的文件的双向传输。使用 FTP 来传输时,是具有一定程度的危险性, 因为数据在因特网上面是完全没有受到保护的明文传输方式!FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。
  • 默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。
  • vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
2.安全特性
  • vsftp 程序的运行者一般是普通用户,降低了相对应进程的权限,提高了安全性。是一个安全、高速、稳定的FTP服务器
  • 可以做基于多个IP的虚拟FTP主机服务器
  • 任何需要执行较高权限的指令都需要上层程序许可。匿名服务设置十分方便。匿名FTP的根目录不需要任何特殊的目录结构,或系统程序或其它的系统文件
  • ftp 所需要使用的绝大多数命令都被整合到了 vsftp 中,基本不需要系统额外提供命令。不执行任何外部程序,从而减少了安全隐患
  • 拥有 chroot 功能,可以改变用户的根目录,限制用户只能在自己的家目录
  • VSFTP市场应用十分广泛,很多国际性的大公司和自由开源组织在使用,如:Red Hat, Suse,Debian,OpenBSD
3.vsftpd工作原理
VSFTP 连接类型
  • 控制连接(持续连接) → TCP 21(命令信道) → 用户收发FTP命令

  • 数据连接(按需连接) → TCP 20(数据信道) → 用于上传下载数据

  • vsftpd基于C/S模式,有两种传输模式,分别是主动模式、被动模式。vsftp默认工作模式为主动模式。

主动(port )模式
  • ftp client 端从一个任意的大于1024的端口P连接到ftp server 端的21端口。然后ftp client 端开始监听端口P+N,并发送FTP命令“port P+N”到ftp server 端。接着ftp server 端会从它自己的数据端口(20)连接到ftp client 端指定的数据端口P+N。
    1. ftp client端启用大于1024端口P连接ftp server端口21,通过tcp三次握手建立连接
    2. ftp client 端发送PORT请求告诉ftp server 端自己开启了P+N端口接收数据
    3. ftp server 端用20端口和ftp client 端的P+N端口通过tcp三次握手后开始传输数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fPXtypoo-1632022854813)(G:\笔记\Linux运维\企业级共享文件系统.assets\image-20210917081853489.png)]

被动(Passive)模式
  • 在被动方式FTP中,命令连接和数据连接都由ftp client 端发起,这样就可以解决从服务器到ftp client 端的数据端口的入方向连接被防火墙过滤掉的问题。当开启一个FTP连接时,ftp client 端打开两个任意的本地端口P>1024连接服务器的21端口,但与主动方式的FTP不同,ftp client 端不会提交PORT命令并允许ftp server 端来回连它的数据端口,而是提交PASV命令。这样做的结果是ftp server 端会开启一个任意的非特权端口(端口号大于1024),并发送PORT S命令给客户端。然后ftp client 端发起从本地端口P+N到ftp server 端的端口S的连接用来传送数据。
    1. ftp client端启用大于1024端口P连接ftp server端口21,通过tcp三次握手建立连接
    2. ftp client 端发送PASV请求告诉ftp server 端自己处于被动模式
    3. ftp server 端监听端口S>1024,告知ftp client 端
    4. ftp client 端用P+N端口和ftp server 端的S端口通过tcp三次握手后开始传输数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vdz4yBB6-1632022854814)(G:\笔记\Linux运维\企业级共享文件系统.assets\image-20210917081926608.png)]

VSFTP 传输模式
  • Binary模式:不对数据进行任何处理,适合进行可执行文件、压缩文件、图片等
  • ASCII模式:进行文本传输时,自动适应目标操作系统的结束符,如回车符等
  • 切换方式:在ftp>提示符下输入ascii即转换到ACSII方式,输入bin,即转换到Binary方式。
  • Linux的红帽默认模式:Linux的红帽发行版中VSFTP默认采用的是Binary模式,这样能保证绝大多数文件传输后能正常使用

1.1.2vsftp搭建ftp服务

1.安装
1.1服务器端
关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
setenforce 0

查询是否系统已经自带了vsftpd
rpm -q vsftpd

使用 yum 安装vsftpd
yum -y install vsftpd

启动
systemctl start vsftpd

停止
systemctl stop vsftpd

查看状态
systemctl status vsftpd

重启
systemctl restart vsftpd

开机启动vsftpd
systemctl enable vsftpd

检查vsftpd是否开启:
ps -e|grep vsftpd
1.2vsftpd配置目录详解
  • /etc/vsftpd/vsftpd.conf:主配置文件
  • /usr/sbin/vsftpd:vsftpd的主程序
  • /etc/rc.d/init.d/vsftpd:启动脚本
  • /etc/pam.d/vsftpd:PAM认证文件(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止访问的用户来自/etc/vsftpd/ftpusers文件中的用户)
  • /etc/vsftpd/ftpusers:禁止使用vsftpd的用户列表文件。记录不允许访问FTP服务器的用户名单,管理员可以把一些对系统安全有威胁的用户账号记录在此文件中,以免用户从FTP登录后获得大于上传下载操作的权利,而对系统造成损坏。(注意:linux-4中此文件在/etc/目录下)
  • /etc/vsftpd/user_list:禁止或允许使用vsftpd的用户列表文件。这个文件中指定的用户缺省情况(即在/etc/vsftpd/vsftpd.conf中设置userlist_deny=YES)下也不能访问FTP服务器,在设置了userlist_deny=NO时,仅允许user_list中指定的用户访问FTP服务器。(注意:linux-4中此文件在/etc/目录下)
  • /var/ftp:匿名用户主目录;本地用户主目录为:/home/用户主目录,即登录后进入自己家目录
  • /var/ftp/pub:匿名用户的下载目录,此目录需赋权根chmod 1777 pub(1为特殊权限,使上载后无法删除)
  • /etc/logrotate.d/vsftpd.log:Vsftpd的日志文件
1.3客户端
yum install -y ftp

1.1.3匿名用户验证

VSFTP 软件信息:
  • 服务端软件名:vsftpd,需要安装
  • 客户端软件名:ftp,不需要安装
  • 服务名:vsftpd
  • 端口号:20、21、指定范围内随机端口
  • 配置文件:/etc/vsftpd/vsftpd.conf
匿名用户验证:
  • 用户账号名称:ftp或anonymous
  • 用户账号密码:无密码
  • 工作目录:/var/ftp
  • 默认权限:默认可下载不可上传,上传权限由两部分组成(主配置文件和文件系统)
linux-90:
服务器端创建一个测试文件
touch lagouedu.txt

linux-91:
准备工作:
cd /data
touch test.txt

1.客户端匿名登录
ftp 192.168.198.90
用户名:ftp
密码:空,直接回车

2.查看ftp内置命令:?
常见命令: ls cd put get delete

3.测试上传文件:
put /data/test.txt

4.下载服务器文件:
get lagouedu.txt

5.退出ftp:
quit

1.1.4FTP命令详解

1.汇总
FTP的命令行格式为:ftp -v -d -i -n -g [主机名],其中
-v显示远程服务器的所有响应信息;
-n限制ftp的自动登录,即不使用;
.n etrc文件;
-d使用调试方式;
-g取消全局文件名。
ftp使用的内部命令如下(中括号表示可选项):

1.![cmd[args]]:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip.
2.$ macro-ame[args]:执行宏定义macro-name.
3.account[password]:提供登录远程系统成功后访问系统资源所需的补充口令。
4.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。
5.ascii:使用ascii类型传输方式。
6.bell:每个命令执行完毕后计算机响铃一次。
7.bin:使用二进制文件传输方式。
8.bye:退出ftp会话过程。
9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。
10.cd remote-dir:进入远程主机目录。
11.cdup:进入远程主机目录的父目录。
12.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out。
13.close:中断与远程服务器的ftp会话(与open对应)14.cr:使用asscii方式传输文件时,将回车换行转换为回行。
15.delete remote-file:删除远程主机文件。
16.debug[debug-value]:设置调试方式,显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。
17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件local-file。
18.disconnection:同close。
19.form format:将文件传输方式设置为format,缺省为file方式。
20.get remote-file[local-file]:将远程主机的文件remote-file传至本地硬盘的localfile。
21.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。
22.hash:每传输1024字节,显示一个hash符号(#)。
23.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。
24.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。
25.image:设置二进制传输方式(同binary)26.lcd[dir]:将本地工作目录切换至dir。
27.ls[remote-dir][local-file]:显示远程目录remote-dir,并存入本地文件local-file。
28.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。
29.mdelete[remote-file]:删除远程主机文件。
30.mdir remote-files local-file:与dir类似,但可指定多个远程文件,如:mdir *.o.*.zipoutfile
31.mget remote-files:传输多个远程文件。
32.mkdir dir-name:在远程主机中建一目录。
33.mls remote-file local-file:同nlist,但可指定多个文件名。
34.mode[modename]:将文件传输方式设置为modename,缺省为stream方式。
35.modtime file-name:显示远程主机文件的最后修改时间。
36.mput local-file:将多个文件传输至远程主机。
37.newer file-name:如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。
38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的localfile。
39.nmap[inpattern outpattern]:设置文件名映射机制,使得文件传输时,文件中的某些字符相互转换,如:nmap $1.$2.$3[$1$2].[$2$3],则传输文件a1.a2.a3时,文件名变为a1,a2。该命令特别适用于远程主机为非UNIX机的情况。
40.ntrans[inchars[outchars]]:设置文件名字符的翻译机制,如ntrans 1R,则文件名LLL将变为RRR。
41.open host[port]:建立指定ftp服务器连接,可指定连接端口。
42.passive:进入被动传输方式。
43.prompt:设置多个文件传输时的交互提示。
44.proxy ftp-cmd:在次要控制连接中,执行一条ftp命令,该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。
45.put local-file[remote-file]:将本地文件local-file传送至远程主机。
46.pwd:显示远程主机的当前工作目录。
47.quit:同bye,退出ftp会话。
48.quote arg1,arg2...:将参数逐字发至远程ftp服务器,如:quote syst.
49.recv remote-file[local-file]:同get。
50.reget remote-file[local-file]:类似于get,但若local-file存在,则从上次传输中断处续传。
51.rhelp[cmd-name]:请求获得远程主机的帮助。
52.rstatus[file-name]:若未指定文件名,则显示远程主机的状态,否则显示文件状态。
53.rename[from][to]:更改远程主机文件名。
54.reset:清除回答队列。
55.restart marker:从指定的标志marker处,重新开始get或put,如:restart 13056.rmdir dir-name:删除远程主机目录。
57.runique:设置文件名唯一性存储,若文件存在,则在原文件后加后缀..1,.2等。
58.send local-file[remote-file]:同put。
59.sendport:设置PORT命令的使用。
60.site arg1,arg2...:将参数作为SITE命令逐字发送至远程ftp主机。
61.size file-name:显示远程主机文件大小,如:site idle 720062.status:显示当前ftp状态。
63.struct[struct-name]:将文件传输结构设置为struct-name,缺省时使用stream结构。
64.sunique:将远程主机文件名存储设置为唯一(与runique对应)65.system:显示远程主机的操作系统类型。
66.tenex:将文件传输类型设置为TENEX机的所需的类型。
67.tick:设置传输时的字节计数器。
68.trace:设置包跟踪。
69.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:type binary,设置二进制传输方式。
70.umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask 371.user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。
72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp服务器的所有响应都将显示给用户,缺省为on.
73.?[cmd]:同help。

1.2 samba

1.2.1samba 概述

  • samba是一套使用SMB(Server Message Block)默认在局域网上共享文件和打印机的一种通信协议, 通过支持这个协议, samba允许Linux服务器与Windows系统之间进行通信,使跨平台的互访成为可能。samba采用C/S模式, 其工作机制是让NetBIOS( Windows 网上邻居的通信协议)和SMB两个协议运行于TCP/IP通信协议之上,并且用NetBEUI协议让Windows在“网上邻居”中能浏览Linux服务器。

  • samba服务器包括两个后台应用程序: Smbd 和 Nmbd。Smbd 是samba的核心, 主要负责建立 LinuxSamba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问; Nmbd主要负责对外发布Linux Samba服务器可以提供的NetBIOS名称和浏览服务,使Windows用户可以在“网上邻居”中浏览Linux Samba服务器中共享的资源。另外Samba还包括一些管理工具, 如 smb-client,smbmount, testparm, Smbpasswd 等程序。

  • Samba服务器可实现如下功能:WINS和DNS服务; 网络浏览服务; Linux和Windows域之间的认证和授权;

  • UNICODE字符集和域名映射;满足CIFS协议的UNIX共享等。

samba的主要应用:
  • samba的主要目的就是用来沟通Windows与Unix这两种不同的作业平台。
  • 共享档案与打印机服务;
  • 提供身份认证;
  • 提供Windows网络上的主机名称解析(NetBIOS name)。
1.samba与ftp对比
ftp 的优缺点
  • 优点:文件传输、应用层协议、可跨平台
  • 缺点:只能实现文件传输,无法实现文件系统挂载;无法直接修改服务器端文件
Samba 的特性
  • 使用 smb/cifs 协议
  • 可跨平台
  • 可实现文件系统挂载
  • 可实现服务器端修改文件
2.smb协议和cifs之间的关系
  • 随着互联网的飞速发展,Microsoft 希望将SMB协议扩展到 Internet 上去,成为 Internet 上计算机之间相互共享数据的一种标准。因此它将原有的几乎没有多少技术文档的SMB协议进行整理,重新命名为CIFS(Common Internet File System),它使程序可以访问远程 Internet 计算机上的文件并要求此计算机提供服务。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS 是公共的或开放的 SMB 协议版本,并由 Microsoft 使用。 SMB 协议在局域网上用于服务器文件访问和打印的协议。

1.2.2samba安装

yum install -y samba

启动samba
systemctl start smb

设置开机启动
systemctl enable smb

查看samba服务状态
systemctl status smb

1.2.3配置samba

1.添加用户并设置密码
  • 设置账号用于登录samba服务器,同时并samba用户登录设置密码。具体命令:

  • 本地用户验证(Samba服务器默认的安全级别,用户在访问共享资源之前必须提供用户名和密码进行验证)该方式是使用一个数据库文件来验证。数据库文件叫passdb.tdb。可以通过pdbedit -a 向数据库中添加新用户,不过要建立的Samba用户必须先是系统用户。也可以理解为我们使用pdbedit -a 将系统用户转化为了samba用户

语法:
pdbedit [参数] 用户名
参数:
  • -a:新建Samba账户(将系统用户转化为samba用户,并设置密码)
  • -x:删除Samba账户
  • -L:列出Samba用户列表,读取passdb.tdb数据库文件。
useradd sambauser

设置samba账户密码:
pdbedit -a sambauser

查看samba用户
pdbedit -L sambauser

授权
chmod 777 /home/sambauser/

关闭seliunx
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
setenforce 0

开放共享目录权限
iptables -F
2.重启samba服务器
systemctl restart smb
3.windows客户端测试
  • 安装samba服务:需要重新启动windows
  • 通过配置文件资源管理器方式登录samba服务器进行测试
  • 通过配置网络映射方式登录samba服务器进行测试

1.3企业级共享文件系统

背景介绍

  • 在网络中,多台计算机或同一计算机中的多个用户,同时使用硬件和软件资源。通常多用户同时需要的资源总是超过系统实际物理资源的数量,但采用逻辑(或虚拟)资源分配的方式,实现资源共享,可较好地处理这个矛盾,从而提高计算机的使用效率。但必须由操作系统进行协调管理,才能避免混乱。方法主要有两种:由操作系统统一管理分配,适用于同一计算机系统中的多用户;用户互相通告,适用于网络系统。

  • 文件共享是指主动地在网络上共享自己的计算机文件。一般文件共享使用P2P模式,文件本身存在用户本人的个人电脑上。大多数参加文件共享的人也同时下载其他用户提供的共享文件。有时这两个行动是连在一起的。

  • 网络给我们带来了许多方便,我们可以用文件共享轻轻松松的与其他人分享文件,文件共享是指主动地在网络上(互联网或小的网络)共享自己的计算机文件。一般文件共享使用P2P模式,文件本身存在用户本人的个人电脑上。大多数参加文件共享的人也同时下载其他用户提供的共享文件。有时这两个行动是连在一起的。

  • 文件共享有多个重要的问题,其中两个最重要,第一个问题是中央集中制还是分网络结构用户的隐私权和匿名性。后者在版权拥有者对一些文件共享用户起诉后成为了一个重要问题。第二个问题是使用所谓的“间谍软件”收集和出卖用户数据。早年的客户端程序只接受一种协议,因此一个客户端程序要么只接受Napster要么只接受Gnutella。当时有一种在客户端建立一个使用多种协议的软件的运动。这个运动最主要的目的是一个用户没有必要使用不同的程序来做同一件事。有时有的人共享的文件非常受人欢迎,这样许多人会想从他那里获得这个文件,这有可能导致这个人的系统无法满足所有的需要。分散制是减轻这个问题的一个办法,尤其是假如有许多人在共享这个文件的话,那么这个文件可以从不同的地方来获取。分散制也被用来解决对中央集中制的威胁,这个威胁即可以来自法律控告,也可能来自敌对的用户。一个分散的网络无法被整个地攻击,攻击者只能对其个别成员进行攻击,而整个网络的剩余部分依然工作。为了防止有人只收藏别人提供的文件而不肯共享它们,后来有的系统引入了交换和评分的功能。在这样的系统中,一个用户只在他能够期望获得报酬的情况下才共享。KaZaA使用一种非常简单的评分系统。客户端程序计算用户的优先权并告诉提供文件的一段该用户的优先权是多少。但这个系统被发明后不久就有人改变了客户端程序使得客户端用户总是拥有最高的优先权。另一个使用评分系统的客户端程序是eMule。eMule的客户端程序适用多重来源文件传输协定,它监视用户向另一个用户下载或上传多少文件。有时这个评分系统似乎不影响下载的速度。假如用户有一个空闲的上传隧道的话,那么它接受对方,向对方上传8MB数据,然后将对方放到它的排队的最后。假如对方的评分为x2的话,那么对方比起评分为x1的用户只要等半数的时间就又排到了,用户再上传8MB数据。假如双方互相传送数据的话,那么它们相互之间的评分就会不断上升,传递的速度也提高。BitTorrent协议也有非常好的评分系统。假如一个用户只下载而不上传的话,那么他的下载速度就非常低。今天的系统在上传和下载的功能上和在防止侵犯法律方面的功能上都比较有效。

共享分类

  1. 数据和应用程序的共享。
    1.1 打印共享局域网内建立一台打印服务器,可以为局域网所有用户提供打印服务。
    1.2 邮件功能邮件服务器可以为企业内部所有员工提供基于用户名的邮件转发、分发、抄送等服务,并且可以在服务器上完成方便的管理、备 份、删除、收回、恢复等工作。
    1.3网络聊天最常见的便是qq,微信,等应用程序,可以实时、快速的实现位于不同物理位置的用户之间的语音、视频交流。
    1.4 实时消息例如Yahoo IM、MSN等应用程序,可以实现局域网、互联网范围内的消息转发。
    1.5 数据库数据库服务器是企业局域网内部重要的组成部分,可以实现数据共享、减少冗余度、集中存储和管理、可维护性和安全性等功能。
  2. 网络存储常见的便是文件共享服务,采用FTP和TFTP服务,使用户能够在工作组计算机上方便而安全的访问共享服务器上的资源,而且ftp资源大多是免费的。
  3. 资源备份随着网络攻击和病毒的发展,资源备份也成为了资源共享当中不可或缺的一部分,现代企业大都采取实时高效的资源备份方式,以便在网络崩溃的时候能够最大限度的保护公司信息,以及在灾难恢复的时候起到最大的作用。
  4. 人脉关系:包括客户资源、能力资源等一些可以相互应用的到的。
  5. 设备。

局域网中资源共享

打印机的共享
  • 安装打印服务器。局域网内任意一台计算机上安装本地打印机,包括打印机硬件连接、软件安装,使计算机本身能打印。这台计算机对网络而言称打印服务器,将它“属性”设置共享。此时记住这台计算机的标识。
  • 工作站安装网络打印机。在工作站安装网络打印机,双击“添加打印机”,选“网络打印机”下一步,再下一步,在共享打印机窗口中“浏览”,找上面安装共享打印机的标识,选定“下一步”。其它要共享打印机的工作站都要这样安装一下,就可以共享网络打印机。
文件夹或驱动器共享
  • 在网络中,一个工作站上的文件夹或驱动器都可以让其它工作站共享,使用方法如下。文件夹或驱动器共享的设置。在“计算机”窗口中,右击文件夹或驱动器图标,选“属性”,点“共享”就可以了。硬盘驱动器共享时,选“新建共享”按扭,在“新建共享”对话框中“共享名”写入名,确定后即可。这里注意不要用“默认共享”。工作站的使用。双击“网上邻居”图标,再双击“整个网络”图标,再双击“Microsoftwindows网络”,再双击Workgroup图标,会看到局域网络各计算机图标;双击共享文件夹或驱动器的那台计算机图标,文件夹或驱动器图标就会出现,这时可将其当作自己的文件夹或驱动器使用。

1.3.1rsync

  • rsync 是类 unix 系统下的数据镜像备份工具。一款支持快速完全备份和增量备份的工具,支持本地复制,远程同步等,类似于 scp 命令;rsync 命令在同步文件之前要先登录目标主机进行用户身份认证,认证过后才能进行数据同步,身份认证方式取决于所使用的协议类型,rsync 一般使用两种协议进行数据同步:ssh 协议和 rsync 协议。
官网地址
https://rsync.samba.org/
下载地址
https://rsync.samba.org/download.html
rsync 优点
  • rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期地备份文件服务器数据到远程服务器上,对本地磁盘定期进行数据镜像等。
rsync 不足

随着应用系统规模的不断扩大,对数据的安全性和可靠性提出了更高的要求,rsync便暴露出了很多不足之处。首先,rsync同步数据时,需要扫描所有文件后进行比对,然后进行差量传输。如果文件数量达到了百万量级及以上时,扫描文件就非常耗费时间,有时还会出现只是很少一部分数据发生了变化,因此rsync就变得非常低效了。其次,rsync不能够实时监测、同步数据,虽然它可以通过Linux守护进程的方式触发同步,但是两次触发动作一定会出现时间差,可能导致服务器端和客户端的数据出现不一致,后期无法在出现故障时完全恢复数据。

实验环境
  • 服务器端:linux-90 192.168.198.90
  • 客户端:linux-91 192.168.198.91

1.安装rsync

客户端和服务器都需要安装

yum install -y rsync

2.修改配置文件

  • 有些版本的系统上可能该文件默认不存在。
address = 192.168.198.90 #rsync 服务绑定 IP
port 873 #默认服务端口 873
log file = /var/log/rsyncd.log #日志文件位置
pid file = /var/run/rsyncd.pid #进程号文件位置
[lagou] #共享名:用来连接是写在 url 上的,切记
    comment = lagou directory backup #共享描述话语
    path = /lagouedu #实际共享目录
    read only = no #是否仅允许读取
    dont compress = *.gz *.bz2 #哪些文件类型不进行压缩
    auth users = zhangsan #登录用户名(非系统用户,需要自行创建)
    secrets file = /etc/rsyncd_users.db #认证所需账户密码文件(需自行创建-同上)
  • linux-90:
vi /etc/rsyncd.conf
address=192.168.198.90
port 873
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
[lagou]
    comment=lagou directory backup
    path=/lagouedu
    read only=no
    dont compress =*.gz *.bz2
    auth users=zhangsan
    secrets file=/etc/rsyncd_users.db

3.创建认证所需账户密码文件

linux-90:
vi /etc/rsyncd_users.db
文件内容如下:
zhangsan:123456
必须修改权限,否则客户端登录报错
chmod 600 /etc/rsyncd_users.db
创建共享目录:
mkdir -p /lagouedu
cd /lagouedu
创建文件:
touch {
    1..5}.txt
ls

4.启动服务

linux-90:
rsync --daemon
netstat -antp | grep :873

5.设置映射用户对共享目录有权限

linux-90:
setfacl -m u:nobody:rwx /lagouedu

6.下载测试

语法规则:
  • rsync -avz rsync://用户名@服务器地址/共享模块名 /本地目录
linux-91:
rsync -avz rsync://[email protected]/lagou /data
cd /data
ls

7.上传测试

语法规则:
  • rsync -avz /本地目录/* rsync://用户名@服务器地址/共享模块名
linux-90:
rm -rf *
linux-91:
rsync -avz /data/* rsync://[email protected]/lagou

8.删除测试

–delete:
  • 删除本地比服务器多出来的文件(源地址没有,目标地址有的删掉)
linux-91:
touch 7.txt
rsync -avz --delete rsync://[email protected]/lagou /data
ls

9.免密登录测试

  • rsync 协议的免密码可以借助一个环境变量实现。在客户端生成。
语法规则:
  • export RSYNC_PASSWORD=虚拟用户密码(客户端生成)
linux-91:
export RSYNC_PASSWORD=123456
touch 7.txt
rsync -avz --delete rsync://[email protected]/lagou /data
ls
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_33893590/article/details/120378890

智能推荐

ARCGISEngine中对文件的打开,保存,另存为的代码实现_arcgis engine save-程序员宅基地

文章浏览阅读2.8k次,点赞5次,收藏21次。目录打开文件:保存文件:另存为:导出地图:打开文件: OpenFileDialog openMXD = new OpenFileDialog(); openMXD.Title = "打开地图"; openMXD.InitialDirectory = "E:\\大三上学期实验\\ARCGIS Engine..._arcgis engine save

BitmapFactory.Options对图片进行缩放-程序员宅基地

文章浏览阅读140次。package com.pingyijinren.helloworld.activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Matrix;import android.support.v7.app.AppCompa..._bitmapfactory.options 缩放图片

反编译工具jad下载、安装及使用(无需集成环境一键使用)_jad.exe-程序员宅基地

文章浏览阅读1.1w次,点赞3次,收藏8次。一、下载安装1.下载地址:http://www.kpdus.com/jad.html2.下载完成将压缩包解压至方便自己查找的位置3.进入DOS界面(按键win+r,输入cmd)4.进入jad.exe所在的路径4.1直接在本地找到jad.exe,在搜索栏输入cmd回车进入4.2在dos界面结合各命令进入jad.exe路径补充:4.2.1直接输入d:,切换至d盘4.2.2输入cd gongju,切换至工具目录4.2.3输入dir显示所有目录5.拿到需要进行反编译的Java文件,保存_jad.exe

特征选择的几种常见方法_以下属于常见的特征选择方法-程序员宅基地

文章浏览阅读1.6w次。最近参加秋招笔试,发现关于特征选择的题目出现了不少,于是打算网上查查资料总结一下,发现下面两篇文章写得很好,两篇一起看,通俗易懂。特征选择 特征选择常用算法综述..._以下属于常见的特征选择方法

Tomcat重新部署与热部署与重启服务_重新部署和重启服务器-程序员宅基地

文章浏览阅读3.4k次,点赞7次,收藏17次。1.重启tomcat服务,只会重新编译java模块下的文件(相当于更新.classes文件)2.重新部署,将java类和.xml等配置文件都复制到tomcat的运行环境中(相当于既更新.classes文件又更新web.xml等配置文件)3.热部署,既在运行时修改java类或者jsp文件可以在不重服务器的情况下让修改生效,但是对修改配置文件(例如.xml)无效!总结:开启热部署后,不更改配置..._重新部署和重启服务器

[Vue warn]: Unknown custom element: – did you register the component correctly? 详细查错思路_[vue warn]: unknown custom element: <el-option> - -程序员宅基地

文章浏览阅读3.9w次,点赞8次,收藏6次。出现这个错误往往与组件的引入有关。具体可能的几种错误原因如下:1. 在非脚手架环境下,组件注册使用了CamelCase的话,那么组件调用的时候就要用kebab-case代替。2. 是否正确注册组件,使用如下方式注册组件: export default { data(){ return{ }, components/*注意components不能漏掉末尾的s!*/: { vTable // //注册组件 }, }}.._[vue warn]: unknown custom element: - did you register the compo

随便推点

Android 更新runOnUiThread()_android 替换runonuithread-程序员宅基地

文章浏览阅读1.4w次。Activity类的runOnUiThread方法你用过吗,如果你对于Android的Thread+Handler方式感觉繁琐,不妨试试Activity提供的另外一种简单的方法runOnUiThread,runOnUiThread可以帮助你在线程中执行UI更新操作,我们只需要在线程中写上类似如果你对于Android的Thread+Handler方式感觉繁琐,不妨试试Activity提供的另外一_android 替换runonuithread

struts2 select标签对Action中传递过来的List集合生成下拉列表_"headerkey=\"course\" headervalue=\"请选择课程名"-程序员宅基地

文章浏览阅读9.5k次。说说最简单的其他的以此类推:·select标签必须属性只有一个为List·select一定要有值,否则出错。如果我们在html中使用select时会有个默认的值,在Struts2中也是一样的,如果List,没有值可以加上headerKey,headerValue就可以通过。·List属性的值在Action中定义,必须为一个迭代的List/Map/Set,本例采用List· listKey对_"headerkey=\"course\" headervalue=\"请选择课程名"

华为鸿蒙os官网正式上线,华为鸿蒙OS官网正式上线:提供源码下载 首批支持128KB~1...-程序员宅基地

文章浏览阅读176次。鸿蒙OS 2.0终于从道听途说走上舞台,具备跨设备、服务流、快速直接访问、可见性、隐私五大能力。根据华为官方声明,鸿蒙OS 2.0基于分布式应用框架,进一步打破单一物理设备的硬件限制,将不同设备分组到不同场景;超级终端;,为智能家居、移动办公、智能旅行、视听娱乐、远程教育等场景带来更多新体验。比如在鸿蒙OS 2.0的支持下,移动导航可以配合手表提醒人们转弯变道。此外,鸿蒙OS 2.0自适应UX框架..._鸿蒙os官网已经上线

Elasticsearch使用Java初始化高级客户端(RestHighLevelClient类)_resthighlevelclient close-程序员宅基地

文章浏览阅读2.8k次。目前,官方计划在Elasticsearch 7.0 版本中关闭 TransportClient,并且在8.0版本中完全删除TransportClient。作为替代品,我们应该使用高级客户端。高级客户端可以执行 HTTP 请求,而不是序列化 Java 请求。高级客户端的主要目标是公开特定的 API 方法,这些 API 方法将接收请求作为参数并返回响应结果,以便由客户端本身处理请求和响应结果。【示例】Elasticsearch使用Java初始化高级客户端。(1)创建第一个 SpringBoot .._resthighlevelclient close

XML文件操作(如果节点中有多个同名节点,但是每个节点的属性不同)_节点中有多个同名节点,需要取第二个节点-程序员宅基地

文章浏览阅读1.6w次。localhost sa jiayuan 读取节点中的一个属性 XmlDocument doc=newXmlDocument(); doc.Load("config.xml"); XmlNodexnuser=doc.SelectSingleNode("userdata"); stringflag=xnuser._节点中有多个同名节点,需要取第二个节点

Nordic——Serial DFU(串口dfu)升级协议详解_nordic uart dfu-程序员宅基地

文章浏览阅读1.1k次,点赞28次,收藏19次。通过Uart串行通信执行安全设备固件更新,传输层使用SLIP库对数据包进行编码和解码。串行 DFU 协议 流程 分四步:第一步:检查串行通道是否 互通,向设备发送 ping id命令,等待设备回复 测试是否正常收发通信。第二步:DFU 传输 初始化操作。第三步:传输 init 包数据。第四步:传输 固件 数据。_nordic uart dfu

推荐文章

热门文章

相关标签