配置网络文件系统(Network File System,NFS)服务来简化Linux系统之间的文件共享工作,

通过部署NFS服务在多台Linux系统之间挂载并使用资源。

在管理设备挂载信息时,使用autofs服务不仅可以正常满足设备挂载的使用需求,还能进一步提高服务器硬件资源和网络带宽的利用率。

  • SAMBA文件共享服务

1987年,微软公司和英特尔公司共同制定了SMB(Server Messages Block)服务器消息块协议,旨在解决局域网内的文件或打印机等资源的共享问题,这也使得在多个主机之间共享文件变得越来越简单。

1991年,Tridgwell为了解决Linux系统与Windows系统之间的文件共享问题,基于SMB协议开发出了SMBServer服务程序。这是一款开源的文件共享软件,经过简单配置就能够实现Linux系统与Windows系统之间的文件共享工作。 当时,Tridgwell想把这款软件的名字SMBServer注册成为商标,但却被商标局以SMB是没有意义的字符而拒绝了申请。后来Tridgwell不断翻看词典,突然看到一个拉丁舞蹈的名字—Samba,而且这个热情洋溢的舞蹈名字中又恰好包含了“SMB”,于是Samba服务程序的名字由此诞生。Samba服务程序现在已经成为在Linux系统与Windows系统之间共享文件的最佳选择。

# dnf install samba samba-client   安装samba服务
# vim /etc/samba/smb.conf   配置服务
1 # See smb.conf.example for a more detailed config file or
2 # read the smb.conf manpage.
3 # Run 'testparm' to verify the config is correct after
4 # you modified it.
5
6 [global]  共享唯一标识符 访问的名称
7         workgroup = SAMBA   工作组
8         security = user     登录方式(分4种:share、user、domain、server)
9
10         passdb backend = tdbsam  保存数据库
11
12         printing = cups  12-15行参数中所提到的cups全称叫做Common UNIX Printing System,中文名叫通用UNIX打印系统服务
13         printcap name = cups
14         load printers = yes
15         cups options = raw
16
17 [homes]  17至22行代表共享该登录用户的家目录内容(安全起见删除掉)
18         comment = Home Directories
19         valid users = %S, %D%w%S
20         browseable = No
21         read only = No
22         inherit acls = Yes
23
24 [printers]  24-29行是用SMB协议共享本地的打印机设备,方便局域网内的用户可以远程使用
25         comment = All Printers
26         path = /var/tmp
27         printable = Yes
28         create mask = 0600
29         browseable = No
30
31 [print$]   31至37行依然为共享打印机设备的参数
32         comment = Printer Drivers
33         path = /var/lib/samba/drivers
34         write list = @printadmin root
35         force group = @printadmin
36         create mask = 0664
37         directory mask = 0775# vim /etc/samba/smb.conf   配置服务 可以只保留以下几行
[global]workgroup = SAMBA   工作组security = user     登录方式(分4种:share、user、domain、server)passdb backend = tdbsam  保存数据库 

删除掉不需要的代码是常规操作,能够让服务程序“轻装前进”,关闭非必要功能,实现更好的性能,把硬件资源用到刀刃上。

Samba服务程序中的参数以及作用

行数

参数

作用

1

# See smb.conf.example for a more detailed config file or

注释信息

2

# read the smb.conf manpage.

3

# Run 'testparm' to verify the config is correct after

4

# you modified it.

5

[global]

全局参数

6

workgroup = SAMBA

工作组名称

7

8

security = user

安全验证的方式,总共有4种

9

10

passdb backend = tdbsam

定义用户后台的类型,总共有3种

11

12

printing = cups

打印服务协议

13

printcap name = cups

打印服务名称

14

load printers = yes

是否加载打印机

15

cups options = raw

打印机的选项

16

17

[homes]

共享名称

18

comment = Home Directories

描述信息

19

valid users = %S, %D%w%S

可用账户

20

browseable = No

指定共享信息是否在“网上邻居”中可见

21

read only = No

是否只读

22

inherit acls = Yes

是否继承访问控制列表

23

24

[printers]

共享名称

25

comment = All Printers

描述信息

26

path = /var/tmp

共享路径

27

printable = Yes

是否可打印

28

create mask = 0600

文件权限

29

browseable = No

指定共享信息是否在“网上邻居”中可见

30

31

[print$]

共享名称

32

comment = Printer Drivers

描述信息

33

path = /var/lib/samba/drivers

共享路径

34

write list = @printadmin root

可写入文件的用户列表

35

force group = @printadmin

用户组列表

36

create mask = 0664

文件权限

37

directory mask = 0775

目录权限

security参数代表用户登录samba服务时的验证方式,总共有4种可用参数:

“share”代表主机无需验证口令

“user”代表登录samba服务时需要使用账号密码进行验证,默认

“domain”代表通过域控制器进行身份验证,限制用户的来源域;

“server”代表使用独立主机验证来访用户的提供的口令,相当于是集中管理账号

在最早期的Linux系统中,samba服务使用的是pam模块调用本地账号和密码信息,

后来在5、6版本时替换成了用smbpasswd命令设置独立的samba服务账号和密码口令。

到了RHEL 7/8版本时则又进行了一次改革,将传统的验证方式换成了tdbsam数据库,这是一个专门用于保存samba服务账号口令的数据库,用户需要用pdbedit命令进行独立的添加操作。

设置Samba服务程序的参数以及作用

参数

作用

[database]

共享名称为database

comment = Do not arbitrarily modify the database file

警告用户不要随意修改数据库

path = /home/database

共享目录为/home/database

public = no

关闭“所有人可见”

writable = yes

允许写入操作

第1步:创建用于访问共享资源的账户信息。

在RHEL 8系统中,Samba服务程序默认使用的是用户口令认证模式(user)。这种认证模式可以确保仅让有密码且受信任的用户访问共享资源,而且验证过程也十分简单。不过,只有建立账户信息数据库之后,才能使用用户口令认证模式。另外,Samba服务程序的数据库要求账户必须在当前系统中已经存在,否则日后创建文件时将导致文件的权限属性混乱不堪,由此引发错误。

pdbedit:用于管理samba服务程序的账户信息数据库,格式为“pdbedit [选项] 账户”。

参数

作用

-a 用户名

建立Samba用户

-x 用户名

删除Samba用户

-L

列出用户列表

-Lv

列出用户详细信息的列表

第2步:创建用于共享资源的文件目录。

在创建时,不仅要考虑到文件读写权限的问题,而且由于/home目录是系统中普通用户的家目录,因此还需要考虑应用于该目录的SELinux安全上下文所带来的限制。  文件上下文值samba_share_t

第3步:设置SELinux服务与策略,使其允许通过Samba服务程序访问普通用户家目录。

第4步:在Samba服务程序的主配置文件中,写入共享信息。

第5步:Samba服务程序的配置工作基本完毕。

Samba服务程序在Linux系统中的名字为smb,所以重启并加入到启动项中,保证在重启服务器后依然能够为用户持续提供服务。

将iptables防火墙清空,再把samba服务添加到firewalld防火墙中

第6步:在服务器本地检查samba服务是否启动可以用“systemctl status smb”进行查看,而如果想进一步看samba服务都共享出去了哪些共享目录,则可以用smbclient命令来查看共享详情,-U参数指定了用户名称,建议一会用哪位用户进行挂载,就用哪位用户身份进行查看;-L参数列举共享清单。

# id linuxprobe
# pdbedit -a -u linuxprobe
new password:此处输入该账户在Samba服务数据库中的密码
retype new password:再次输入密码进行确认# mkdir /home/database
# chown -Rf linuxprobe:linuxprobe /home/database
# semanage fcontext -a -t samba_share_t /home/database
# restorecon -Rv /home/database# getsebool -a | grep samba
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
# setsebool -P samba_enable_home_dirs on# vim /etc/samba/smb.conf
[global]workgroup = SAMBAsecurity = userpassdb backend = tdbsam
[database]  共享名称 唯一comment = Do not arbitrarily modify the database file  介绍path = /home/databasepublic = no       是否共享 no 需要账号才能访问writable = yes   # systemctl restart smb
# systemctl enable smb
# systemctl tatus smb
# iptables -F
# iptables-save
# firewall-cmd --zone=public --permanent --add-service=samba
# firewall-cmd --reload另一台linux
# dns install samba-client cifs-utils
# smbclient -U linuxprobe -L 192.168.10.10
Enter SAMBA\linuxprobe's password: 此处输入该账户在Samba服务数据库中的密码

Windows挂载共享

Samba共享服务是部署Windows系统上还是部署在Linux系统上,通过Windows系统进行访问时,其步骤和方法都是一样的。

Linux挂载共享

第1步:安装服务

第2步:创建挂载点 用于挂载Samba服务共享资源的目录

mount命令的-t参数指定协议类型,-o参数指定用户命和密码,最后追加上服务器IP地址和共享名称和本地挂载目录即可。服务器IP地址后面的共享名称指的是配置文件中[database]的值,而不是服务器本地挂载的目录名称。

第3步:创建认证文件,避免每次重启都要挂载远程共享目录

按照Samba服务的用户名、密码、共享域的顺序将相关信息写入到一个认证文件中,然后让/etc/fstab文件和系统自动的加载它。为了保证不被其他人随意看到,最后把这个认证文件的权限修改为仅root管理员才能够读写

# dnf install cifs-utils# mkdir /database
# mount -t cifs -o username=linuxprobe,password=redhat //192.168.10.10/database /database
# df -h
//192.168.10.10/database   17G  3.9G   14G  23% /database# vim auth.smb
username=linuxprobe
password=redhat
domain=MYGROUP  工作组
# chmod 600 auth.smb
# vim /etc/fstab
//192.168.10.10/database                   /database     cifs    credentials=/root/auth.smb  0 0
# mount -a# ls /database
  • NFS网络文件系统

NFS网络文件系统服务可以将远程Linux系统上的文件共享资源挂载到本地主机的目录上,从而使得本地主机(Linux客户端)基于TCP/IP协议,像使用本地主机上的资源那样读写远程Linux系统上的共享文件。

RHEL 8系统中默认已经安装了NFS服务

首先请使用软件仓库检查自己的RHEL 8系统中是否已经安装了NFS软件包

# dnf install nfs-utils
Package nfs-utils-1:2.3.3-14.el8.x86_64 is already installed.

第1步:为了检验NFS服务配置的效果,我们需要使用两台Linux主机(一台充当NFS服务器,一台充当NFS客户端)

第2步:在NFS服务器上建立用于NFS文件共享的目录,并设置足够的权限确保其他人也有写入权限。

第3步:NFS服务程序的配置文件为/etc/exports,默认情况下里面没有任何内容。可以按照“共享目录的路径 允许访问的NFS客户端(共享权限参数)”的格式,定义要共享的目录与相应的权限。

例,如果想要把/nfsfile目录共享给192.168.10.0/24网段内的所有主机,让这些主机都拥有读写权限,在将数据写入到NFS服务器的硬盘中后才会结束操作,最大限度保证数据不丢失,以及把来访客户端root管理员映射为本地的匿名用户等,

第4步:启动和启用NFS服务程序。

由于在使用NFS服务进行文件共享之前,需要使用RPC(Remote Procedure Call,远程过程调用)服务将NFS服务器的IP地址和端口号等信息发送给客户端。因此,在启动NFS服务之前,还需要顺带重启并启用rpcbind服务程序,并将这两个服务一并加入开机启动项中。

参数

作用

ro

只读

rw

读写

root_squash

当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户

no_root_squash

当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员

all_squash

无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户

sync

同时将数据写入到内存与硬盘中,保证不丢失数据

async

优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据

# iptables -F
# iptables-save
# firewall-cmd --permanent --zone=public --add-service=nfs
# firewall-cmd --permanent --zone=public --add-service=rpc-bind 相应用到的软件包
# firewall-cmd --permanent --zone=public --add-service=mountd   远程用户访问
# firewall-cmd --reload# mkdir /nfsfile
# chmod -R 777 /nfsfile
# echo "welcome to linuxprobe.com" > /nfsfile/readme# vim /etc/exports
/nfsfile 192.168.10.*(rw,sync,root_squash)    NFS客户端地址与权限之间没有空格。(可读可写,同步,映射用户:限制用户做超出共享之外的命令)# systemctl restart rpcbind
# systemctl enable rpcbind
# systemctl start nfs-server
# systemctl enable nfs-server

在NFS服务的配置文件中巧用通配符能够实现很多便捷功能,就比如匹配IP地址就有三种方法:

第一种是直接写*号,代表任何主机都可以访问;

第二种则是实验中采用的192.168.10.*通配格式,代表来自192.168.10.0/24网段的主机;

第三种则是直接写对方的IP地址,如192.168.10.20,代表仅允许某个主机进行访问。

NFS客户端的配置

第1步:先使用showmount命令查询NFS服务器的远程共享信息,其输出格式为“共享的目录名称 允许使用客户端地址”。

第2步: 在NFS客户端创建一个挂载目录。使用mount命令并结合-t参数,指定要挂载的文件系统的类型,并在命令后面写上服务器的IP地址、服务器上的共享目录以及要挂载到本地系统(即客户端)的目录。

第3步:将 NFS文件共享服务写入到fstab文件中,使其一直有效

参数

作用

-e

显示NFS服务器的共享列表

-a

显示本机挂载的文件资源的情况NFS资源的情况

-v

显示版本号

# showmount -e 192.168.10.10# mkdir /nfsfile
# mount -t nfs 192.168.10.10:/nfsfile /nfsfile
# df -h
192.168.10.10:/nfsfile   17G  3.9G   14G  23% /nfsfile# cat /nfsfile/readme
# vim /etc/fstab
192.168.10.10:/nfsfile                    /nfsfile                nfs     defaults        0 0
  • AutoFs自动挂载服务

autofs服务程序是一种Linux系统守护进程,当检测到用户试图访问一个尚未挂载的文件系统时,将自动挂载该文件系统。

第1步:修改主配置文件。

在autofs服务程序的主配置文件中需要按照“挂载目录 子配置文件”的格式进行填写。挂载目录是设备挂载位置的上一级目录。

第2步:修改子配置文件。

在子配置文件中,应按照“挂载目录 挂载文件类型及权限 :设备名称”的格式进行填写。

例如,要把光盘设备挂载到/media/iso目录中,可将挂载目录写为iso,而-fstype为文件系统格式参数,iso9660为光盘设备格式,ro、nosuid及nodev为光盘设备具体的权限参数,/dev/cdrom则是定义要挂载的设备名称。

# dnf install autofs# vim /etc/auto.master  包含了最重要的参数,没有包含全部
/misc/ /etc/automisc
/media  /etc/iso.misc   启用子配置iso名称,名称可随意写, 后缀建议misc结尾# vim /etc/iso.misc
iso   -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
# systemctl start autofs
# systemctl enable autofs

将 NFS服务服务加入到AutoFs自动挂载服务中

首先应该把NFS共享目录先卸载掉,然后在autofs服务程序的主配置文件中会有一条“/misc /etc/auto.misc”参数,这个auto.misc相当于自动挂载的参考文件,而它默认就已经存在

填写本地挂载的路径和NFS服务器的挂载信息

重启autofs服务程序,进入到/misc/nfsfile目录时,共享信息便会自动挂载

# umount /nfsfile
# vim /etc/auto.master
/misc    /etc/auto.misc  新增# vim /etc/auto.misc
nfsfile         192.168.10.10:/nfsfile# systemctl restart autofs
# cd /misc/nfsfile
192.168.10.10:/nfsfile   17G  3.9G   14G  23% /misc/nfsfile
  • DNS域名解析服务
相较于由数字构成的IP地址,域名更容易被理解和记忆,所以我们通常更习惯通过域名的方式来访问网络中的资源。
为了降低用户访问网络资源的门槛,DNS(Domain Name System)域名系统技术应运而生。这是一项用于管理和解析域名与IP地址对应关系的技术 ,即将域名解析为IP地址(正向解析),或将IP地址解析为域名(反向解析)
鉴于互联网中的域名和IP地址对应关系数据库太过庞大,DNS域名解析服务采用了类似目录树的层次结构来记录域名与IP地址之间的对应关系,从而形成了一个分布式的数据库系统。
域名后缀一般分为国际域名和国内域名。
原则上来讲,域名后缀都有严格的定义,但在实际使用时可以不必严格遵守。
目前最常见的域名后缀有.com(商业组织)、.org(非营利组织)、.gov(政府部门)、.net(网络服务商)、.edu(教研机构)、.pub(公共大众)、.cn(中国国家顶级域名)等。
DNS技术作为互联网基础设施中重要的一环,为了为网民提供不间断、稳定且快速的域名查询服务,保证互联网的正常运转,提供了下面三种类型的服务器。
主服务器:在特定区域内具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系。
从服务器:从主服务器中获得域名与IP地址的对应关系并进行维护,以防主服务器宕机等情况。
缓存服务器:通过向其他域名解析服务器查询获得域名与IP地址的对应关系,并将经常查询的域名信息保存到服务器本地,以此来提高重复查询时的效率。
主服务器是用于管理域名和IP地址对应关系的真正服务器,
从服务器帮助主服务器“打下手”,分散部署在各个国家、省市或地区,以便让用户就近查询域名,从而减轻主服务器的负载压力。
缓存服务器不太常用,一般部署在企业内网的网关位置,用于加速用户的域名查询请求。
DNS域名解析服务采用分布式的数据结构来存放海量的“区域数据”信息,在执行用户发起的域名查询请求时,具有递归查询和迭代查询两种方式。
所谓递归查询,是指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结果提交给用户。
迭代查询则是指,DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。

最高级、最权威的根DNS服务器总共有13台,分布在世界各地,其管理单位、具体的地理位置。

名称

管理单位

地理位置

IP地址

A

INTERNIC.NET

美国-弗吉尼亚州

198.41.0.4

B

美国信息科学研究所

美国-加利弗尼亚州

128.9.0.107

C

PSINet公司

美国-弗吉尼亚州

192.33.4.12

D

马里兰大学

美国-马里兰州

128.8.10.90

E

美国航空航天管理局

美国加利弗尼亚州

192.203.230.10

F

因特网软件联盟

美国加利弗尼亚州

192.5.5.241

G

美国国防部网络信息中心

美国弗吉尼亚州

192.112.36.4

H

美国陆军研究所

美国-马里兰州

128.63.2.53

I

Autonomica公司

瑞典-斯德哥尔摩

192.36.148.17

J

VeriSign公司

美国-弗吉尼亚州

192.58.128.30

K

RIPE NCC

英国-伦敦

193.0.14.129

L

IANA

美国-弗吉尼亚州

199.7.83.42

M

WIDE Project

日本-东京

202.12.27.33

我们所提到的13台根域服务器并非真的是指只有13台服务器,没有那台服务器能独立承受住如此大的请求量,这是技术圈习惯的叫法而已。实际上用于根域名的服务器总共有504台,它们从A到M进行了排序,共用13个IP地址以此进行负载均衡,抵抗分布式拒绝服务攻击(DDoS)的影响。

随着互联网接入设备数量增长,原有 IPv4 体系已经不能满足需求,IPv6 协议在全球开始普及。基于 IPv6 的新型地址结构为新增根服务器提供了契机。下一代互联网国家工程中心于2013 年联合日本和美国相关运营机构和专业人士发起“雪人计划”,提出以 IPv6 为基础、面向新兴应用、自主可控的一整套根服务器解决方案和技术体系,在全球完成25台 IPv6(互联网协议第六版) 根服务器架设。

bound 也可以实现出dns服务

LinuxProbe 0x15 SAMBA文件共享服务、NFS网络文件系统、AutoFs自动挂载服务、DNS域名解析服务相关推荐

  1. 嵌入式成长轨迹33 【嵌入式学习阶段】【ARM环境调试】【在虚拟机下Ubuntu建立NFS网络文件系统】...

    更新版 http://www.cnblogs.com/zeedmood/archive/2012/12/08/2808376.html (以防参考资料链接无效,将所有参考文章都附后了,所以非常长;实际 ...

  2. Linux运维系列总结-Linux系统启动过程、WEB工作原理、DHCP工作原理、DNS解析原理、NFS网络文件系统、FTP文件传输协议、PXE+KICKSTART自动安装系统

    Linux运维系列总结-Linux系统启动过程.WEB工作原理.DHCP工作原理.DNS解析原理.NFS网络文件系统.FTP文件传输协议.PXE+KICKSTART自动安装系统 1.Linux系统的启 ...

  3. 嵌入式成长轨迹61 【智能家居项目】【ARM 飞凌ok6410】【在虚拟机Ubuntu下NFS网络文件系统建立】...

    推荐阅读顺序: 基本环境搭建: [配置]在虚拟机Ubuntu下NFS网络文件系统建立 <ok6410 Qt移植百科全书> [配置]QT&QWT&sqlite3安装配置 这中 ...

  4. 如何在ubuntu 14.04系统下开启nfs网络文件系统

    之前安装过ubuntu 11.04和ubuntu 12.04的系统时,分别研究过如何开启NFS网络文件系统.今天将系统更新到了ubuntu 14.04,发现之前的办法都不行了,有些步骤得更新一下,于是 ...

  5. Linux下的NFS网络文件系统

    一.NFS概述 NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间共享资源.在NFS的应用中,本地NFS的客户端应用可以透 ...

  6. linux运维、架构之路-nfs网络文件系统

    一.nfs介绍  NFS是Network File System的缩写,是网络文件系统,它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录,主要存储用户上传的图片附件等信息. ...

  7. linux通过网关挂在nfs,NFS 网络文件系统挂载在A8板子上

    我承认自己是菜鸟,没什么网络知识就来搞挂载nfs网络文件系统,花费了5天的时间才把nfs网络文件系统成功挂载在A8板子上,实现了A8板子和虚拟机的文件共享.分享一下个人经验: 以下是基于nfs已经完成 ...

  8. L028-老男孩实效教育-nfs网络文件系统企业级优化实战-12节

    通过命令:mount -t nfs -o nosuid,noexec,nodev,rw 10.0.0.7:data/ /mnt       将mnt挂载. 挂载的时候因为加了noexec参数,虽然有x ...

  9. NFS网络文件系统共享日志

    最近搞了个日志收集 Server,但是遇到了几个问题 1.收集log的server上面有空间,却不让安装ftp.nginx及其他可提供访问的服务 2.可提供服务的server又没有磁盘空间 3.用什么 ...

最新文章

  1. 什么时候应该将花括号用于ES6导入?
  2. Swift - 闭包的介绍及用法(以数组排序为例)
  3. 测试服务搭建之centos7下安装java
  4. 利用事件冒泡和阻止事件冒泡的例子
  5. sed简单使用(二)编号
  6. python中进程池的应用
  7. MySQL 5.7基于GTID及多线程主从复制
  8. CDN - 域名解析错误排查
  9. yaourt下载安装dropbox提示curl ssl证书错误
  10. 查看jvm的full gc的频率
  11. oracle临时表空间自动清理,oracle清理临时表空间
  12. python3小游戏源代码_Python入门塔防小游戏,开发步骤和源码,带你轻松学python...
  13. 苹果 M1 Mac 安装系统后创建用户失败的解决方法
  14. gcc中使用rpath指定优先搜索路径
  15. 如何阅读Java源码
  16. 天才小毒妃 第878章 你喜欢孩子
  17. 什么是网点?印刷网点与CMYK色彩,彩色渐变色印刷原理。
  18. ImportError: /home/cyj/anaconda2/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
  19. Kube-OVN:大型银行技术团队推荐的金融级云原生网络方案
  20. 基于QT实现的计算器(只需要简单的栈知识,不仅仅是四则运算,接近手机内置计算器功能)

热门文章

  1. linux进程控制(上)
  2. 空间索引--网格索引
  3. 一文理解分布式开发中的服务治理
  4. Android无障碍开发(AccessibilityService)入门
  5. 如何简单实现mysql数据库迁移
  6. git常用命令操作详解(gitblit自建服务器使用)
  7. android 空调遥控器——遥控器基本版(功能全部实现)
  8. 如何将Android Studio与华为软件开发云代码仓库无缝对接(二)
  9. 计算机作业微波炉工作的原理,微波炉工作原理是什么 微波炉使用方法【详解】...
  10. esp8266 html模板,01_ESP8266 NONO_SDK 创建工程模板