控制连接(持续连接) → TCP 21(命令信道) → 用户收发FTP命令
数据连接(按需连接) → TCP 20(数据信道) → 用于上传下载数据
vsftpd基于C/S模式,有两种传输模式,分别是主动模式、被动模式。vsftp默认工作模式为主动模式。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fPXtypoo-1632022854813)(G:\笔记\Linux运维\企业级共享文件系统.assets\image-20210917081853489.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vdz4yBB6-1632022854814)(G:\笔记\Linux运维\企业级共享文件系统.assets\image-20210917081926608.png)]
关闭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
yum install -y 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
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 130。
56.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 7200。
62.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 3。
71.user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。
72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp服务器的所有响应都将显示给用户,缺省为on.
73.?[cmd]:同help。
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共享等。
yum install -y samba
启动samba
systemctl start smb
设置开机启动
systemctl enable smb
查看samba服务状态
systemctl status smb
设置账号用于登录samba服务器,同时并samba用户登录设置密码。具体命令:
本地用户验证(Samba服务器默认的安全级别,用户在访问共享资源之前必须提供用户名和密码进行验证)该方式是使用一个数据库文件来验证。数据库文件叫passdb.tdb。可以通过pdbedit -a 向数据库中添加新用户,不过要建立的Samba用户必须先是系统用户。也可以理解为我们使用pdbedit -a 将系统用户转化为了samba用户
pdbedit [参数] 用户名
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
systemctl restart smb
在网络中,多台计算机或同一计算机中的多个用户,同时使用硬件和软件资源。通常多用户同时需要的资源总是超过系统实际物理资源的数量,但采用逻辑(或虚拟)资源分配的方式,实现资源共享,可较好地处理这个矛盾,从而提高计算机的使用效率。但必须由操作系统进行协调管理,才能避免混乱。方法主要有两种:由操作系统统一管理分配,适用于同一计算机系统中的多用户;用户互相通告,适用于网络系统。
文件共享是指主动地在网络上共享自己的计算机文件。一般文件共享使用P2P模式,文件本身存在用户本人的个人电脑上。大多数参加文件共享的人也同时下载其他用户提供的共享文件。有时这两个行动是连在一起的。
网络给我们带来了许多方便,我们可以用文件共享轻轻松松的与其他人分享文件,文件共享是指主动地在网络上(互联网或小的网络)共享自己的计算机文件。一般文件共享使用P2P模式,文件本身存在用户本人的个人电脑上。大多数参加文件共享的人也同时下载其他用户提供的共享文件。有时这两个行动是连在一起的。
文件共享有多个重要的问题,其中两个最重要,第一个问题是中央集中制还是分网络结构用户的隐私权和匿名性。后者在版权拥有者对一些文件共享用户起诉后成为了一个重要问题。第二个问题是使用所谓的“间谍软件”收集和出卖用户数据。早年的客户端程序只接受一种协议,因此一个客户端程序要么只接受Napster要么只接受Gnutella。当时有一种在客户端建立一个使用多种协议的软件的运动。这个运动最主要的目的是一个用户没有必要使用不同的程序来做同一件事。有时有的人共享的文件非常受人欢迎,这样许多人会想从他那里获得这个文件,这有可能导致这个人的系统无法满足所有的需要。分散制是减轻这个问题的一个办法,尤其是假如有许多人在共享这个文件的话,那么这个文件可以从不同的地方来获取。分散制也被用来解决对中央集中制的威胁,这个威胁即可以来自法律控告,也可能来自敌对的用户。一个分散的网络无法被整个地攻击,攻击者只能对其个别成员进行攻击,而整个网络的剩余部分依然工作。为了防止有人只收藏别人提供的文件而不肯共享它们,后来有的系统引入了交换和评分的功能。在这样的系统中,一个用户只在他能够期望获得报酬的情况下才共享。KaZaA使用一种非常简单的评分系统。客户端程序计算用户的优先权并告诉提供文件的一段该用户的优先权是多少。但这个系统被发明后不久就有人改变了客户端程序使得客户端用户总是拥有最高的优先权。另一个使用评分系统的客户端程序是eMule。eMule的客户端程序适用多重来源文件传输协定,它监视用户向另一个用户下载或上传多少文件。有时这个评分系统似乎不影响下载的速度。假如用户有一个空闲的上传隧道的话,那么它接受对方,向对方上传8MB数据,然后将对方放到它的排队的最后。假如对方的评分为x2的话,那么对方比起评分为x1的用户只要等半数的时间就又排到了,用户再上传8MB数据。假如双方互相传送数据的话,那么它们相互之间的评分就会不断上升,传递的速度也提高。BitTorrent协议也有非常好的评分系统。假如一个用户只下载而不上传的话,那么他的下载速度就非常低。今天的系统在上传和下载的功能上和在防止侵犯法律方面的功能上都比较有效。
https://rsync.samba.org/
https://rsync.samba.org/download.html
随着应用系统规模的不断扩大,对数据的安全性和可靠性提出了更高的要求,rsync便暴露出了很多不足之处。首先,rsync同步数据时,需要扫描所有文件后进行比对,然后进行差量传输。如果文件数量达到了百万量级及以上时,扫描文件就非常耗费时间,有时还会出现只是很少一部分数据发生了变化,因此rsync就变得非常低效了。其次,rsync不能够实时监测、同步数据,虽然它可以通过Linux守护进程的方式触发同步,但是两次触发动作一定会出现时间差,可能导致服务器端和客户端的数据出现不一致,后期无法在出现故障时完全恢复数据。
客户端和服务器都需要安装
yum install -y rsync
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 #认证所需账户密码文件(需自行创建-同上)
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
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
linux-90:
rsync --daemon
netstat -antp | grep :873
linux-90:
setfacl -m u:nobody:rwx /lagouedu
linux-91:
rsync -avz rsync://[email protected]/lagou /data
cd /data
ls
linux-90:
rm -rf *
linux-91:
rsync -avz /data/* rsync://[email protected]/lagou
linux-91:
touch 7.txt
rsync -avz --delete rsync://[email protected]/lagou /data
ls
linux-91:
export RSYNC_PASSWORD=123456
touch 7.txt
rsync -avz --delete rsync://[email protected]/lagou /data
ls
文章浏览阅读2.8k次,点赞5次,收藏21次。目录打开文件:保存文件:另存为:导出地图:打开文件: OpenFileDialog openMXD = new OpenFileDialog(); openMXD.Title = "打开地图"; openMXD.InitialDirectory = "E:\\大三上学期实验\\ARCGIS Engine..._arcgis engine save
文章浏览阅读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 缩放图片
文章浏览阅读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次。最近参加秋招笔试,发现关于特征选择的题目出现了不少,于是打算网上查查资料总结一下,发现下面两篇文章写得很好,两篇一起看,通俗易懂。特征选择 特征选择常用算法综述..._以下属于常见的特征选择方法
文章浏览阅读3.4k次,点赞7次,收藏17次。1.重启tomcat服务,只会重新编译java模块下的文件(相当于更新.classes文件)2.重新部署,将java类和.xml等配置文件都复制到tomcat的运行环境中(相当于既更新.classes文件又更新web.xml等配置文件)3.热部署,既在运行时修改java类或者jsp文件可以在不重服务器的情况下让修改生效,但是对修改配置文件(例如.xml)无效!总结:开启热部署后,不更改配置..._重新部署和重启服务器
文章浏览阅读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
文章浏览阅读1.4w次。Activity类的runOnUiThread方法你用过吗,如果你对于Android的Thread+Handler方式感觉繁琐,不妨试试Activity提供的另外一种简单的方法runOnUiThread,runOnUiThread可以帮助你在线程中执行UI更新操作,我们只需要在线程中写上类似如果你对于Android的Thread+Handler方式感觉繁琐,不妨试试Activity提供的另外一_android 替换runonuithread
文章浏览阅读9.5k次。说说最简单的其他的以此类推:·select标签必须属性只有一个为List·select一定要有值,否则出错。如果我们在html中使用select时会有个默认的值,在Struts2中也是一样的,如果List,没有值可以加上headerKey,headerValue就可以通过。·List属性的值在Action中定义,必须为一个迭代的List/Map/Set,本例采用List· listKey对_"headerkey=\"course\" headervalue=\"请选择课程名"
文章浏览阅读176次。鸿蒙OS 2.0终于从道听途说走上舞台,具备跨设备、服务流、快速直接访问、可见性、隐私五大能力。根据华为官方声明,鸿蒙OS 2.0基于分布式应用框架,进一步打破单一物理设备的硬件限制,将不同设备分组到不同场景;超级终端;,为智能家居、移动办公、智能旅行、视听娱乐、远程教育等场景带来更多新体验。比如在鸿蒙OS 2.0的支持下,移动导航可以配合手表提醒人们转弯变道。此外,鸿蒙OS 2.0自适应UX框架..._鸿蒙os官网已经上线
文章浏览阅读2.8k次。目前,官方计划在Elasticsearch 7.0 版本中关闭 TransportClient,并且在8.0版本中完全删除TransportClient。作为替代品,我们应该使用高级客户端。高级客户端可以执行 HTTP 请求,而不是序列化 Java 请求。高级客户端的主要目标是公开特定的 API 方法,这些 API 方法将接收请求作为参数并返回响应结果,以便由客户端本身处理请求和响应结果。【示例】Elasticsearch使用Java初始化高级客户端。(1)创建第一个 SpringBoot .._resthighlevelclient close
文章浏览阅读1.6w次。localhost sa jiayuan 读取节点中的一个属性 XmlDocument doc=newXmlDocument(); doc.Load("config.xml"); XmlNodexnuser=doc.SelectSingleNode("userdata"); stringflag=xnuser._节点中有多个同名节点,需要取第二个节点
文章浏览阅读1.1k次,点赞28次,收藏19次。通过Uart串行通信执行安全设备固件更新,传输层使用SLIP库对数据包进行编码和解码。串行 DFU 协议 流程 分四步:第一步:检查串行通道是否 互通,向设备发送 ping id命令,等待设备回复 测试是否正常收发通信。第二步:DFU 传输 初始化操作。第三步:传输 init 包数据。第四步:传输 固件 数据。_nordic uart dfu