</div>


花了一天时间,走了不少弯路,解决N多错误,终于全部完成了,记下安装过程中遇到的各种问题,希望对初步使用svn的TX们有所帮助。


关于svn的介绍此处略过,直接进入正题。


svn服务的开启有两种方式,


  • 自带的svnserve服务(访问地址类似于svn://192.168.80.18/repos/)
  • 与Apache配合使用  (访问地址类似于http://192.168.80.18:8077/repos/

下面先进入第一种的配置:


1 安装,解压缩下载的svn压缩包到对应文件夹(建议路径不要有空格与中文)


2 建立版本库,首先建立 f:\svn 空文件夹作为所有版本库的根目录。然后,进入命令行并切换到安装subversion的bin目录(建议将此目录设为path)。


输入如下命令:


svnadmin create f:\svn\repos


3 运行服务进程


在bin目录下输入:


svnserve -d -r f:\svn


注:-d参数效果同于–daemon


    -r参数效果同于–root


svnserve 将会在端口 3690 等待请求,


    –daemon(两个短横线)选项告诉 svnserve 以守护进程方式运行,这样在手动终止之前不会退出。不要关闭命令行窗口,关闭窗口会把 svnserve 停止。




    –root选项设置根位置来限制服务器的访问目录,从而增加安全性和节约输入svnserve URL的时间


    如果不加root参数,服务url为:svn://localhost/svn/repos


    而如果加上root参数,服务url为:svn://localhost/repos




    此处的启动配置会影响服务url,如果输入url错误,会导致访问的时候出现异常




4 为了验证svnserve正常工作,使用TortoiseSVN -> Repo-browser 来查看版本库。在弹出的 URL 对话框中输入:


  svn://localhost/repos


  点 OK 按钮后就可以看见 repo1 版本库的目录树结构了,只不过这时 repo1 是个空库。


可能出现的问题:


    Error: Can’t connect to host ”: 由于目标机器积极拒绝,无法连接。


    解决:首先测试svn的3690端口是否打开:telnet localhost 3690


    如果不成功说明服务没有被正常启动,请参考前面步骤


    可以将svn服务添加到系统服务中去,步骤如下:这样可以避免每次重启后需要手动运行命令的烦恼


    1 在subversion的安装路径下,找到bin文件夹


    2 新建一个setupservice.bat文件,内容为:




  1. sc create svnserve binpath= “Subversion安装路径\bin\svnserve.exe –service -r f:\svn” depend= Tcpip start= auto
  2. sc start svnserve
  3. pause
    sc create svnserve binpath= "Subversion安装路径\bin\svnserve.exe --service -r f:\svn" depend= Tcpip start= auto 

sc start svnserve

pause

这里有个需要注意的问题:“start= auto”等号后面要加上一空格




    3 运行,这时在服务里可找到一个名为svnserve的服务。


    在cmd命令行下查看打开的端口:netstat -ano就看到3690端口打开了




    Error: No repository found in ‘svn://localhost/svn/repos/jmxDemo’ 


    解决:


  1. A.测试1:
  2. ①运行svnserve -d -r f:\svn\repos\jmxDemo //指定jmxDemo根目录为服务的根目录
  3. ②运行svn://localhost,可以正常访问修改jmxDemo
  4. ③运行svn://localhost/jmxDemo,出现:’svn://localhost/jmxDemo’ non-existent in
  5. B.测试2:
  6. ①运行svnserve -d -r f:\svn\repos //指定jmxDemo上层目录为服务的根目录
  7. ②运行svn://localhost/jmxDemo,可以正常访问修改Repository
  8. ③运行svn://localhost,出现:Error * No repository found in ‘svn://localhost’
  9. C.结论:
  10. ①SVN服务启动时指定的根目录不同,会影响相同URL的访问结果
  11. ②SVN在访问指定路径时会从服务的根目录下去寻找,即基于我们启动服务时指定的根目录
  12. ③svn://localhost指向默认的jmxDemo,svn://localhost/jmxDemo指向jmxDemo
  13. ④测试情况一的步骤③失败是因为我们已经把路径直接指向了jmxDemo的根目录
  14. ⑤测试情况二的步骤③失败是因为我们只是把路径指向了jmxDemo的上层目录
 A.测试1: 

①运行svnserve -d -r f:\svn\repos\jmxDemo //指定jmxDemo根目录为服务的根目录

②运行svn://localhost,可以正常访问修改jmxDemo

③运行svn://localhost/jmxDemo,出现:’svn://localhost/jmxDemo’ non-existent in

B.测试2:

①运行svnserve -d -r f:\svn\repos //指定jmxDemo上层目录为服务的根目录

②运行svn://localhost/jmxDemo,可以正常访问修改Repository

③运行svn://localhost,出现:Error * No repository found in ‘svn://localhost’

C.结论:

①SVN服务启动时指定的根目录不同,会影响相同URL的访问结果

②SVN在访问指定路径时会从服务的根目录下去寻找,即基于我们启动服务时指定的根目录

③svn://localhost指向默认的jmxDemo,svn://localhost/jmxDemo指向jmxDemo

④测试情况一的步骤③失败是因为我们已经把路径直接指向了jmxDemo的根目录

⑤测试情况二的步骤③失败是因为我们只是把路径指向了jmxDemo的上层目录




    解决如下:


    svn://localhost/repos/jmxDemo


    而不是 svn://localhost/svn/repos/jmxDemo




5 配置权限


  打开建立的版本库文件夹/conf 编辑server.conf 添加如下几行:

  1. [general]
  2. password-db = passwd.conf
  3. anon-access = none
  4. auth-access = write
  5. authz-db = authz.conf
  [general] 

password-db = passwd.conf

anon-access = none

auth-access = write

authz-db = authz.conf

保证文件中只有这几行是不被注释的


  在当前文件夹新建authz.conf 与passwd.conf文件


  编辑passwd.conf文件,添加内容:


  1. [users]
  2. cjy = cjy
  [users] 

cjy = cjy

注意整个串前后都不要有空格


  编辑authz.conf文件,添加内容:


  1. [/]
  2. cjy = rw
  [/] 

cjy = rw

6 导入文件夹


  重启服务,在需要导入的文件夹上右键–TortoiseSVN -> Import 输入url:svn://localhost/repos/文件夹名


  此处文件夹名需要被加上,不然会把文件夹下的所有文件弄到repos文件夹下,数据乱了


  输入用户名密码:cjy




  导入的时候可能出现的问题:


    Error: Authorization failed


    解决:权限问题


这个问题弄了蛮久,一直以为是拼写url的问题,找了半天没找到,然后确认问题是权限配置错误,查了半天也没看出来,后来弄清楚,是因为导入涉及到在根下写东西,所以必须要有根下的w权限,添加如下配置后问题解决:


  1. [/]
  2. cjy = rw
[/] 

cjy = rw

注意:


版本库与导入项目最好不要重名,如果重名:


比如把arm下的东东导入到了这个版本库:svn://localhost/arm。


而配置权限的时候,[arm:/]这才代表工程的根目录,即:svn://localhost/arm


要想配到权限到目录下,就得这么写: [arm:/arm/],不然出错,且问题不容易排出






7 check out之,svn://localhost/repos/文件夹名 注意大小写区分,不然可能也会出现Error: Authorization failed错误




OK,至此svn自带服务配置完成,可以进行其他测试如update,commit等。都不会再出现问题。下面说明Apache配合svn提供http svn服务。


下面进入第二种配置:1、安装Apache,Apache的安装文件时一个msi文件可以直接双击运行(建议路径不要有空格与汉字)


2、从Subversion安装目录的 bin 子目录将 intl3_svn.dll、libdb44.dll 拷贝到Apache安装目录的bin 文件夹


3、从Subversion安装目录的 bin 子目录将 mod_authz_svn.so、mod_dav_svn.so 拷贝到Apache的模块目录(Apache 安装目录的    modules 文件夹)此步可省,配置的时候通过绝对路径的方式指定也可以


4、修改Apache的配置文件 httpd.conf ,使用LoadModule来加载mod_dav_svn模块。




  1. LoadModule dav_module modules/mod_dav.so
  2. LoadModule dav_fs_module modules/mod_dav_fs.so
  3. LoadModule dav_svn_module ”svn安装目录/bin/mod_dav_svn.so”
  4. LoadModule authz_svn_module ”svn安装目录/bin/mod_authz_svn.so”
LoadModule dav_module modules/mod_dav.so 

LoadModule dav_fs_module modules/mod_dav_fs.so

LoadModule dav_svn_module “svn安装目录/bin/mod_dav_svn.so”

LoadModule authz_svn_module “svn安装目录/bin/mod_authz_svn.so”注:如果拷贝了so文件到模块目录了,可以将上面两个的路径改成modules/mod_dav_svn.so 的形式,否则请使用正确的绝对路径


请确认文件中未注释的数据只有以上四句




   确定用来作为Subversion版本库的目录


   在配置文件最后添加如下几行:

  1. <Location /svn>
  2. DAV svn
  3. SVNPath f:/svn/repos
  4. </Location>
   <Location /svn> 

DAV svn

SVNPath f:/svn/repos

</Location>

这个配置告诉Apache首先需要启用 dav_module,然后加载 dav_svn_module 。版本库对外的URL是:


   http://localhost:8077/svn ,所有的Subversion版本库在物理上位于f:/svn/repos 。


   配置完毕后重新启动 Apache,打开浏览器,输入 http://localhost:8077/svn


    将会看到成功画面:


   svn - Revision 10: /arm


   ..


   diary/


   ref/


   temp/




   ——————————————————————————–


   Powered by Subversion version 1.6.0 (r36650).




   这表示 Apache 的 dav_svn 模块已经可以正常工作了(现在已经可以通过http的方式获取svn中的内容了)。


  


5、测试通过之后,进行权限配置




5.1、基本 HTTP 认证




最简单的客户端认证方式是通过 HTTP 基本认证机制,简单的使用用户名和密码来验证一个用户的身份。Apache提供了一个 htpasswd 工具来管理一个用户文件,这个文件包含用户名和加密后的密码,这些就是你希望赋予 Subversion 特别权限的用户。htpasswd 可以在 Apache 的 bin 安装目录下找到。具体使用方法如下:


创建用户文件:


htpasswd -cm F:\svn\repos\conf\passwordfile cjy


添加新用户(-m 表示以 MD5 加密密码):


htpasswd [-m] F:\svn\repos\conf\passwordfile dmm


这个地方如果加上c,会把以前的覆盖掉


更改用户密码:


htpasswd [-m] F:\svn\repos\conf\passwordfile cjy


删除用户(要用大写的 D ):


htpasswd –D F:\svn\repos\conf\passwordfile cjy


接下来修改 httpd.conf,在 Location 标签中加入如下内容:


  1. AuthType Basic
  2. AuthName ”svn repos”
  3. AuthUserFile F:\svn\repos\conf\passwordfile
  4. Require valid-user
AuthType Basic 

AuthName "svn repos"

AuthUserFile F:\svn\repos\conf\passwordfile

Require valid-user

说明:


AuthType Basic:启用基本的验证,比如用户名/密码对。


AuthName “svn repos”:当一个认证对话框弹出时,出现在认证对话框中的信息。(最好用英文,TortoiseSVN 不支持中文,安装语言包除外。)


AuthUserFile F:\svn\repos\conf\passwordfile:指定F:\svn\repos\conf\passwordfile为用户文件,用来验证用户的用户名及密码。


Require valid-user:限定用户只有输入正确的用户名及密码后才能访问这个路径


重新启动 Apache ,打开浏览器访问版本库。Apache 会提示你输入用户名和密码来认证登陆了,现在只有 passwd 文件中设定的用户才可以访问版本库。也可以配置只有特定用户可以访问,替换上述 “Require valid-user” 为 “Require user cjy dmm” 将只有用户文件中的 cjy 和 dmm 可以访问该版本库。




有的时候也许不需要这样严格的访问控制,例如大多数开源项目允许匿名的读取操作,而只有认证用户才允许写操作。为了实现更为细致的权限认证,可以使用 Limit 和 LimitExcept 标签。例如:


  1. <LimitExcept GET PROPFIND OPTIONS REPORT>
  2. require valid-user
  3. </LimitExcept>
<LimitExcept GET PROPFIND OPTIONS REPORT> 

require valid-user

</LimitExcept>

以上配置将使匿名用户有读取权限,而限制只有 passwd 中配置的用户可以使用写操作。


如果这还不能满足你的要求,你希望精确的控制版本库目录访问,可以使用 Apache 的 mod_authz_svn 模块对每个目录进行认证操作。


5.2、用 mod_authz_svn 进行目录访问控制


首先需要让 Apache 将 mod_authz_svn 模块加载进来。在 Subversion 的安装目录中找到 mod_auth_svn 模块,将其拷贝到 Apache 安装目录的 modules 子目录下。修改 httpd.conf 文件,添加:


LoadModule authz_svn_module modules/mod_authz_svn.so


现在可以在 Location 标签中使用 authz 的功能了。


注:在咱们的配置文件中已经进行了此步骤。此处可以略过




一个基本的 authz 配置如下:




  1. #下面的/svn 表示url为:http://localhost:8077/svn/
  2. <Location /svn>
  3. #先需要启用 dav_module,然后加载 dav_svn_module
  4. DAV svn
  5. #版本库的本地路径
  6. SVNPath f:\svn\repos
  7. #下面一行是使用版本库上一级文件夹的方式来控制所有版本库
  8. #SVNParentPath e:/svn
  9. #权限控制文件
  10. AuthzSVNAccessFile D:\Java\apache\conf\authz.conf
  11. # try anonymous access first, resort to real
  12. # authentication if necessary.
  13. Satisfy Any
  14. Require valid-user
  15. #启用基本的验证,比如用户名/密码对。
  16. #在用户名/密码对文件中的用户名才可以再authz.conf文件中配置生效
  17. AuthType Basic
  18. AuthName ”cjy repos”
  19. AuthUserFile D:\Java\apache\conf\passwordfile
  20. </Location>
#下面的/svn 表示url为:http://localhost:8077/svn/ 

<Location /svn>

先需要启用 dav_module,然后加载 dav_svn_module

DAV svn

版本库的本地路径

SVNPath f:\svn\repos

下面一行是使用版本库上一级文件夹的方式来控制所有版本库

SVNParentPath e:/svn

权限控制文件

AuthzSVNAccessFile D:\Java\apache\conf\authz.conf

try anonymous access first, resort to real

authentication if necessary.

Satisfy Any

Require valid-user

启用基本的验证,比如用户名/密码对。

在用户名/密码对文件中的用户名才可以再authz.conf文件中配置生效

AuthType Basic

AuthName “cjy repos”

AuthUserFile D:\Java\apache\conf\passwordfile

</Location>


AuthzSVNAccessFile 指向的是 authz 的策略文件,详细的权限控制可以在这个策略文件中指定。


AuthUserFile 指向加密用户文件的位置,只有在此文件中存在的用户才可以在authz策略文件中被正确配置




以(#)开头的行会被忽略;在它的简单形式里,每一小节命名一个版本库和一个里面的路径;认证用户名是在每个小节中的选项名;每个选项的值描述了用户访问版本库的级别:r(只读)或者rw(读写),如果用户没有提到或者值留空,访问是不允许的; * 表示所有用户,用它控制匿名用户的访问权限;@符号区分组和用户。如:

  1. [groups]
  2. # 定义组
  3. vip = dmm
  4. users = cjy,light
  5. [/]
  6.  = r  
  7. @vip = rw
  8. [/branches/dev]
  9. @users = rw
  10. [/tags]
  11. cjy = rw
  12. [/private]
  13. =
  14. @vip= r
[groups]

定义组

vip = dmm

users = cjy,light

[/]

* = r

@vip = rw

[/branches/dev]

@users = rw

[/tags]

cjy = rw

[/private]

* =

@vip= r




使用 SVNParentPath 代替 SVNPath 来指定多个版本库的父目录时,其中所有的版本库都将按照这个策略文件配置。例如上例中  cjy将对所有版本库里的 /tags 目录具有读写权限。如果要对具体每个版本库配置,用如下的语法:

  1. [groups]
  2. project1_vip = cjy,dmm
  3. project2_vip = cjy,light
  4. [repos1:/]
  5.  = r  
  6. @ project1_vip = rw
  7. [repos2:/]
  8. = r
  9. @ project2_vip = rw
[groups] 

project1_vip = cjy,dmm

project2_vip = cjy,light

[repos1:/]

* = r

@ project1_vip = rw

[repos2:/]

* = r

@ project2_vip = rw

这样 repos1的 project1_vip 组只能对 repos1 版本库下的文件具有写权限而不能修改版本库 repos2 ,同样 repos2 的 project2_vip 组也不能修改 repos1 版本库的文件。






可能出现的错误:


1、路径或权限不足时将出现错误信息提示:


http://localhost (路径不对)


Error * PROPFIND request failed on ‘/’ PROPFIND of ‘/’: 200 OK (http://localhost)


http://localhost/svn (权限不足)


Error * PROPFIND request failed on ‘/svn’ PROPFIND of ‘/svn’: 403 Forbidden (http://localhost)


http://localhost/svn/repos (正常显示)


http://localhost/repos (权限不允许)


Error * PROPFIND request failed on ‘/repos’ PROPFIND of ‘/repos’: 405 Method Not Allowed (http://localhost)




2、不启动E:\subversion\bin\svnserve.exe ,但启动了ApacheSVN ,访问(tortoiseSVN –> Repo – browser)或提交(SVN Commit)情形如下:


现象:svn://localhost/svn/repos 不能访问或提交,提示:Error * Can’t connect to host ‘localhost’: 由于目标机器积极拒绝,无法连接。 但 file:///e:/svn/repos 和 http://localhost/svn/repos 可以访问或提交。


原因:svn:// 是独立服务器 svnserver 自己的协议。file:/// 是本地访问,即服务器端和客户端在一个机器上


3、  具体到使用so的时候报错 Cannot load mod_dav_svn.so into server: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\


   解决:可能是版本的冲突,请使用2.2.9配1.6


   解压缩下载的svn,里面会有一个readme文件,打开后会列出其支持的相关应用列表,请下载相对应的apache版本


   推荐2.2.9+1.6.0,版本较新,且已经测试通过(附件中有安装文件)




   httpd.exe: Syntax error on line 87 of D:/Java/apache/conf/httpd.conf: Invalid LoadModule path modules/mod_dav_svn.so”


   解决:几个DLL冲突, apache/bin/*.DLL 最终列表:


  1. [-,需要删除的]:
  2. [+.从Subs复制过来的]
  3. [?,未知,可以不要]
  4. [-]libapr-1.dll
  5. [-]libapriconv-1.dll
  6. [-]libaprutil-1.dll
  7. [+]libdb44.dll
  8. [+]libsasl.dll
  9. [+]ssleay32.dll
  10. [?]intl3_svn.dll
   [-,需要删除的]: 

[+.从Subs复制过来的]

[?,未知,可以不要]

[-]libapr-1.dll

[-]libapriconv-1.dll

[-]libaprutil-1.dll

[+]libdb44.dll

[+]libsasl.dll

[+]ssleay32.dll

[?]intl3_svn.dll




   Installing the Apache2.2 service


The Apache2.2 service is successfully installed.


Testing httpd.conf….


Errors reported here must be corrected before the service can be started.


httpd.exe: Could not reliably determine the server’s fully qualified domain name


, using 192.168.80.18 for ServerName


(OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。  : make_sock: c




   解决:修改端口(在Apache配置文件中查询Listen,改成其他端口,因为此端口已经被占用)




Could not open the requested SVN filesystem  [500, #720123]


解决:路径没配正确




是路径的问题


在httpd.conf里设的SVNParentPath 是f:\svn


实际的repository的路径是f:\svn\repos\Project1


SVNParentPath 应该设为f:\svn\repos


问题解决




Error * PROPFIND request failed on ‘/svn’ PROPFIND of ‘/svn’: could not connect to server (http://localhost:8077)解决:服务未正常启动




注:附件内容:


分别为Apache2.2.9与svn1.6.0的安装文件(此配合不会出现版本冲突)


svnserver下权限配置(复制文件到svn版本库的config文件夹下,重启svnserver即可)


Apache下全线配置(复制文件到Apache安装文件夹的config文件夹下,重启Apache即可)

本文转载自:http://jychenok.iteye.com/blog/470199

从subversion开始(svn安装配置全过程(+全套安装文件与配置文件))…..的更多相关文章

  1. 【SVN】Linux下svn搭建配置全过程——初学者轻松上手篇

    版本控制主要用到的是git和svn,其中svn界面化使用操作简单,本篇简单介绍SVN搭建配置全过程. 1. 下载并安装 yum install subversion 查看版本 svnserve --v ...

  2. Linux下SVN服务器安装配置及客户端安装说明

    原文地址:http://wenku.baidu.com/link?url=h3dVAMx4azpOXEND5HQEE6nliE8-zc0GSQ03yv4cUs1vXMALXF64UsK7kT7kXm_ ...

  3. 分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置(单点安装)——第一篇

    分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置(单点安装)--第一篇 简介 首先简单了解一下基础概念,FastDFS是一个开源的轻量级分布式文件系统,由 ...

  4. Tengine 安装配置全过程

    Tengine官网上有个非常简单的教程,中间并未涉及到一些常用的设置,所以仅供参考.一下午为本人的安装步骤及过程. 1.安装必要的编译环境好 由于Tengine安装需要使用源代码自行编译,所以在安装前 ...

  5. 百度富文本编辑器UEditor安装配置全过程

    网站开发时富文本编辑器是必不可少的,他可以让用户自行编辑内容的样式然后上传到后台!下面我们来介绍如何安装使用百度富文本编辑器 一.下载并且设置百度富文本编辑器的样式     你可以去百度UEditor ...

  6. Tengine 安装配置全过程(nginx 同理)

    1.安装必要的编译环境好 yum update yum install gcc gcc-c++ autoconf automake 2.安装需要的组件 A.PCRE PCRE(Perl Compati ...

  7. 企业级监控工具Cacti安装配置全过程

      Cacti 在英文中的意思是仙人掌的意思,Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具.它通过 snmpget来获取数据,使用 RRDtool绘画 ...

  8. nginx php-fpm安装配置 CentOS编译安装php7.2

    CentOS编译安装php7.2 介绍: 久闻php7的速度以及性能那可是比php5系列的任何一版本都要快,具体性能有多好,建议还是先尝试下再说.如果你是升级或新安装,那你首先需要考虑php7和程序是 ...

  9. 【图文详细教程】maven3安装配置+eclipse离线安装maven3插件《《唯一成功的教程~~~2018-01-09》》

    环境搭建前提: 1.电脑上已经安装了1.7以及以上版本的JDK(因为我提供的maven版本是最新的3.3.9的,要求最低JDK1.7) 2.配置好了ecplise并且能正常启动 第一步:下载maven ...

随机推荐

  1. 奶牛渡河(dp)

    奶牛渡河 时间限制: 1 Sec  内存限制: 128 MB提交: 36  解决: 27[提交][状态][讨论版][命题人:外部导入][Edit] [TestData] [同步数据] 题目描述 Far ...

  2. 【转】Java从hdfs上读取文件中的某一行

    [From]https://blog.csdn.net/u010989078/article/details/51790166 package test; import java.io.Buffere ...

  3. Nginx动态添加模块 平滑升级

    已经安装好的Nginx动态添加模块 说明: 已经安装好的Nginx,需要添加一个未被编译安装的模块,需要怎么弄呢? 这里已安装第三方nginx-rtmp-module模块为例 nginx的模块是需要重 ...

  4. SQL-T

    Mysql函数.语句记录 增加 INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) 删除 DELETE FROM 表名称 WHERE 列名 ...

  5. VS快捷键操作

    1.窗口快捷键记忆诀窍: 凡跟窗口挂上钩的快捷键必有一个W(Windows):Ctrl+W,W: 浏览器窗口 (浏览橱窗用有道的翻译是window shopping) Ctrl+W,S: 解决方案管理 ...

  6. python中True,False与0,1之间的关系

    demo1 >>> print(True == 1) >>> print(True == 2) >>> print(False == 0) > ...

  7. 一加手机2 进入recovery 模式无法挂载USB存储器通过命令窗口上传ROM镜像

    试过3.0.3-0和3.0.3-1的recovery都无法使用“挂载USB大容量存储器”模式,这肯定让很多清掉系统(就是system分区)的小伙伴无力吐槽,因为这样子rom就无法在rec里面从电脑拷到 ...

  8. MSF魔鬼训练营-3.2.1活跃主机扫描

    概要: msf的arp_sweep .udp_sweep模块 Nmap -sn使用ping探测 -PU -sn 使用UDP协议端口探测 msf模块 arp_sweep     常用 ipv6_mult ...

  9. 小菜鸟之Oracle数据库

    select * from STUDENT; select * from mark; select * from COURSE; select * from teacher; --注释 select ...

  10. 【DP 好题】Kick Start 2019 Round C Catch Some

    题目链接 题目大意 在一条数轴上住着 $N$ 条狗和一个动物研究者 Bundle.Bundle 的坐标是 0,狗的坐标都是正整数,可能有多条狗住在同一个位置.每条狗都有一个颜色.Bundle 需要观测 ...