首页 文章 精选 留言 我的

精选列表

搜索[基础软件],共10017篇文章
优秀的个人博客,低调大师

ansible基础使用

ansible的安装 Ansible —基于 Python paramiko开发,分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2模板语言,更强的远程命令执行操作。 类似的自动化运维工具有很多常用的还有: Puppet: —基于 Ruby 开发,采用 C/S架构,扩展性强,基于SSL,远程命令执行相对较弱. SaltStack: —基于 Python 开发,采用 C/S 架构,相对 puppet 更轻量级,配置语法使用 YMAL,使得配置脚本更简单。 Ansible 工作机制 Ansible 在管理节点将 Ansible 模块通过 SSH 协议(或者 Kerberos、LDAP)推送到被管理端执行,执行完之后自动删除,可以使用 SVN 等来管理自定义模块及编排。 由上面的图可以看到 Ansible 的核心组件组成由 5 个部分组成: Ansible core: 核心; core Modules: 包括 Ansible 自带的核心模块及自定义模块; connect Plugins: 完成模块功能的补充,包括连接插件、邮件插件等; Playbooks: 定义 Ansible 多任务配置文件,由 Ansible 自动执行; host Inventory: 定义 Ansible 管理主机的清单、主机池、主机列表; yum安装ansible yum install ansible (ansible依赖于Python 2.6或更高的版本、paramiko、PyYAML及Jinja2。) 三台主机: 192.168.38.3 192.168.38.4 192.168.38.5 (安装ansible) 使用ssh-keygen生成ssh秘钥,通过ssh-copy-id -i root@192.168.38.3 将秘钥传送到另外两台被管理的主机,测试登录被管理主机。 ansible的参数: -u 远程执行命令的user,默认为root。 -i 指定主机清单,默认为/etc/ansible/hosts。 -m 指定模块的名称,默认command命令模块。 -a 模块的具体参数。 -k 提示输入远程主机的密码。 vim /etc/ansible/hosts 主机清单配置文件。 [test] test组有2台机器。 192.168.38.4 192.168.38.3 也可以用":"来定义一系列连续的主机,下面那样写也是ok的。 [test] 192.168.38.[3:4] [root@192 ansible]# ansible -m ping 'test' ping模块测试,返回pong,代表ok。 192.168.38.3 | SUCCESS => { "changed": false, "ping": "pong" } 192.168.38.4 | SUCCESS => { "changed": false, "ping": "pong" } [root@192 ansible]# ansible -m command -a 'uptime' 'test' -m命令模块,具体执行uptime命令。 192.168.38.4 | SUCCESS | rc=0 >> 19:23:51 up 1:02, 2 users, load average: 0.00, 0.01, 0.05 192.168.38.3 | SUCCESS | rc=0 >> 19:23:51 up 1:02, 2 users, load average: 0.00, 0.02, 0.05 [root@192 ansible]# ansible -u root -m command -a date 'test'-u 指定用户。 192.168.38.3 | SUCCESS | rc=0 >> 2016年 11月 05日 星期六 19:24:45 CST 192.168.38.4 | SUCCESS | rc=0 >> 2016年 11月 05日 星期六 19:24:45 CS ansible组的划分定义,2台主机分别属于2个组,但同时又属于一个大组。 cat /etc/ansible/hosts test1和test2同属于test组。 [test:children] test1 test2 [test1] 192.168.38.3 [test2] 192.168.38.4 [root@192 ansible]# ansible -a date 'test' 192.168.38.3 | SUCCESS | rc=0 >> 2016年 11月 05日 星期六 19:44:25 CST 192.168.38.4 | SUCCESS | rc=0 >> 2016年 11月 05日 星期六 19:44:25 CST [root@192 ansible]# ansible -a date 'test1' 192.168.38.3 | SUCCESS | rc=0 >> 2016年 11月 05日 星期六 19:44:31 CST [root@192 ansible]# ansible -a date 'test2' 192.168.38.4 | SUCCESS | rc=0 >> 2016年 11月 05日 星期六 19:44:34 CST 本文转自青衫解衣 51CTO博客,原文链接:http://blog.51cto.com/215687833/1869847

优秀的个人博客,低调大师

安全基础-E

1、安全策略是一种正式申明,定义了安全如何在一个特定的组织中实施。 2、安全策略的每个部分通常都包含了几个标准组成:策略申明、标准、指导方针、规程。 3、常见安全策略类型:可接受的使用策略(AUP)、隐私策略、审计策略、外联网策略、密码策略、无线标准策略、社交媒体策略等。 4、组策略是一种集中式的账户管理功能,在windows server系统的活动目录中可用。 5、安全文档的类型:系统架构、变更文档、日志、存货清单。 6、变更管理是一种用于批准并执行变更的系统化方法,以确保信息技术服务最大化的安全性、稳定性和可用性。 7、档案处理方法:分类、保留与留存、处理与销毁。 本文转自 eth10 51CTO博客,原文链接:http://blog.51cto.com/eth10/1981854

优秀的个人博客,低调大师

Android 基础题目

1. BroadcastReceiver 在UI thread? BroadcastReceiver 总是在UI thread, If you register yourBroadcastReceiverusing a validHandlerrunning on a different thread: For example: 1 2 3 4 5 HandlerThread handlerThread = new HandlerThread( "ht" ); handlerThread.start(); Looper looper = handlerThread.getLooper(); Handler handler = new Handler(looper); context.registerReceiver(receiver, filter, null , handler); // Will not run on main thread 参考 2. 为什么要使用IntentServie IntentService是Service的子类,比普通的Service增加了额外的功能。先看Service本身存在两个问题: Service不会专门启动一条单独的进程,Service与它所在应用位于同一个进程中; Service也不是专门一条新线程,因此不应该在Service中直接处理耗时的任务; IntentService特征 会创建独立的worker线程来处理所有的Intent请求; 会创建独立的worker线程来处理onHandleIntent()方法实现的代码,无需处理多线程问题; 所有请求处理完成后,IntentService会自动停止,无需调用stopSelf()方法停止Service; 为Service的onBind()提供默认实现,返回null; 为Service的onStartCommand提供默认实现,将请求Intent添加到队列中; 本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/p/6429338.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android DEX 基础

转载请标明出处:http://www.cnblogs.com/zhaoyanjun/p/5736305.html本文出自【赵彦军的博客】 1、什么是dex? 简单说就是优化后的android版.exe。每个apk安装包里都有。相对于PC上的java虚拟机能运行.class;android上的Davlik虚拟机能运行.dex。为何要研究dex格式?因为dex里面包含了所有app代码,利用反编译工具可以获取java源码。理解并修改dex文件,就能更好的apk破解和防破解。 2、dex好处 dex文件有个天大的好处:它可以直接用DexClassLoader类加载,这叫动态加载。于是我们只要在dex上加壳,在程序运行时脱壳,就可以规避静态反编译的风险。 3、一般的反编译流程是什么样子的。 1、下载apk文件,然后解压 ,得到 class.dex 文件 2、用dex2jar 把 class.dex 还原成classes-dex2jar.jar 文件 3、用jd-gui.exe 把classes-dex2jar.jar 文件打开,就可以看到源码了。 4、Android 为什么会出现 65536限制问题? 在Android系统中,一个App的所有代码都在一个Dex文件里面。Dex是一个类似Jar的包,存储了很多Java编译字节码的归档文件。因为Android系统使用Dalvik虚拟机,所以需要把使用Java Compiler编译之后的class文件转换成Dalvik能够执行的class文件。这里需要强调的是,Dex和Jar一样是一个归档文件,里面仍然是Java代码对应的字节码文件。当Android系统启动一个应用的时候,有一步是对Dex进行优化,这个过程有一个专门的工具来处理,叫DexOpt。DexOpt的执行过程是在第一次加载Dex文件的时候执行的。这个过程会生成一个ODEX文件,即Optimised Dex。执行ODex的效率会比直接执行Dex文件的效率要高很多。但是在早期的Android系统中,DexOpt有一个问题,也就是这篇文章想要说明并解决的问题。DexOpt会把每一个类的方法id检索起来,存在一个链表结构里面。但是这个链表的长度是用一个short类型来保存的,导致了方法id的数目不能够超过65536个。当一个项目足够大的时候,显然这个方法数的上限是不够的。尽管在新版本的Android系统中,DexOpt修复了这个问题,但是我们仍然需要对老系统做兼容。

优秀的个人博客,低调大师

Web服务基础

一、HTTP概述 HTTP是HyperText Transfer Protocol的缩写,即超文本传输协议。HTTP是应用层协议,同其他应用层协议一样,是为了实现某一类具体应用的协议,并由某一运行在用户空间的应用程序来实现其功能。HTTP是一种协议规范,这种规范是记录在文档上的,为真正通过HTTP协议进行通信的HTTP的实现程序。我们知道,HTTP协议是基于C/S架构的进行通信的,而HTTP协议的服务器端实现程序有httpd、nginx等,其客户端的实现程序主要是Web浏览器,例如Firefox、Internet Explorer、Google chrome、Safari、Opera等,此外,客户端的命令行工具还有elink、crul等。Web服务是基于TCP的,因此为了能够随时响应客户端的请求,Web服务器需要监听在80/TCP端口。这客户端浏览器和Web服务器之间就可以通过HTTP协议进行通信了。 二、IANA定义的端口 我们知道,Web服务器为了让所有客户浏览器程序能够与之通信,通常都需要监听在80端口。用户在浏览器上键入URL时,例如:www.baidu.com,默认端口就是80。这一端口是由IANA(InternetAssigned Numbers Authority)分配指定的。另外,IANA是由ICANN管理的,其定义的端口如下: ①0-1023:众所周知的端口,永久地分配给固定的应用使用,这些端口的使用需要特定的应用去注册,属于特权端口,例如Web服务的80/tcp,FTP的21/tcp等。该类端口只有系统管理员才有权限启用,并让进程监听,而普通用户则没有权限。 ②1024-41951:亦为注册端口,但要求不是特别严格,这些端口分配给程序,并注册为某个应用使用,但这些应用并不是很常见,例如mysql服务的3306/tcp,memcache的11211/tcp等。 ③41952+:客户端程序随机使用的端口,为动态端口,或私有端口。在Linux上该类端口范围定义在/proc/sys/net/ipv4/ip_local_port_range中。 三、BSD Socket BSD Socket最早是BSD Unix系统的进程通信机制。Socket即为套接字,作为IPC(Inter-Process Communication,进程间通信)的一种实现,允许位于不同主机上(也可以是同一主机上)的进程间通信机制。Socket可理解为“插座”,只要电线插上了这个“插座”,就可以进行通信了。Socket本质上应该是Socket API,它封装了内核中socket通信相关的通信细节,也就是封装了通信子网(传输层、网络层、数据链路层、物理层)要实现的具体的通信细节,而程序员通过调用Socket API就可以编写能够实现网络通信的程序了。 Socket描述的是IP地址和端口。不同的服务所对应的端口号不同,每种服务需要绑定并监听在一个端口上,打开一个Socket,而客户端可以通过一个Socket跟服务器上的Socket建立连接,这样二者就能实现通信了,我们把正处于通信状态的一对套接字称为已连接套接字。总的来说,Socket是应用层与传输层之间的桥梁,如图。 前面提到,Socket是对IP地址和端口号的描述,一个IP地址+一个端口就是一个套接字(socket)。根据Socket在传输层使用的协议可分为以下三类: (1)SOCK_STREAM:tcp套接字 (2)SOCK_DGRAM:udp套接字 (3)SOCK_RAW:raw套接字 这里的raw套接字指的是在不使用任何传输层协议(例如tcp, udp等)的情况下直接通过发送或接收IP数据包实现通信的一种方式,也就是应用层直接绕过像tcp/udp这样的协议直接基于IP数据包通信。 根据Socket监听的地址格式,Socket Domain可分为: (1)AF_INET:Address Family,IPv4地址格式 (2)AF_INET6:Address Family,IPv6地址格式 (3)AF_UNIX:Address Family,同一主机上不同进程间基于Socket套接字通信所使用的一种地址格式,这种地址的表现形式就是一个套接字文件(Linux一切皆文件);这种地址又称为Unix_SOCK. 接下来介绍TCP客户端和服务器是如何通过TCP套接字接口进行通信的。如图。 对于TCP服务器端来说,首先需要调用socket()函数,向内核注册申请创建TCP套接字(IP地址+端口);一旦申请成功了,就要通过bind()函数绑定程序到这个套接字上;绑定之后,需要调用listen()函数,使服务器进程监听在这个套接字上,允许套接字进行连接,但此时还不能接收用户请求;只有再调用accept()函数之后才开始负责接收客户端请求,并在客户端请求到达之前一直处于阻塞状态,此时TCP服务器进程的状态为LISTEN。 对于TCP客户端来说,同样需要调用socket()函数创建套接字,但不需要监听;当客户端向服务器发起连接请求时,即调用connect()函数,其中在括号中的参数包括对方服务器的IP地址和端口;如果服务器接收连接请求,则双方进行了tcp三次握手,建立双向的虚链路,此时客户端和服务器之间的套接字处于已连接状态(ESTABLISHED),之后的http请求/响应报文都是基于此前建立的虚链路进行发送。 在Linux上,当连接建立之后,客户端就可以在与服务器建立连接的socket文件上填写需要请求的数据,写入数据就相当于向服务器发送数据了,此过程通过调用write()函数完成;而服务器端则可以在与客户端建立连接的socket文件上读取数据,即调用read()函数,这一过程相当于接收客户端请求的数据,二者之间具体的通信细节由底层的通信子网完成。服务器读取到客户端发送过来的请求报文后,接着进行解析请求、处理请求并构建响应报文,再通过调用write()函数把响应报文写入socket文件,通过通信子网传送到客户端的socket文件上,客户端就可以通过这个socket文件得到服务器的响应报文了。如此往复循环多次,直到客户端请求断开连接(一般是由客户端主动请求断开连接,在使用keep-alive连接方式时则有可能是服务器主动请求断开连接)。 一旦客户端请求断开连接,TCP服务器通过调用read()函数读取socket文件内的断开请求数据,同意断开连接。

优秀的个人博客,低调大师

Android json基础

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。 ——JSON官网:http://www.json.org/json-zh.html 一.定义 JSON建构于两种结构: 列表内容“名称/值”对的集合(A collection of name/value pairs)。 不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。 这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。 对象模式: {“name”: “xiaoluo”} , 这就是一个最简单的json对象,对于这种数据格式,key值必须要是string类型,而对于value,则可以是string、number、object、array等数据类型 数组模式:这种形式被称为是jsonArray,数组是值(value)的有序集合。一个数组以“[”开始,“]”结束。值之间使用“,”(逗号)分隔。 二.解析JSON数据 Android提供的Json解析类: JSONObject: Json对象,可以完成Json字符串与Java对象的相互转换 JSONArray: Json数组,可以完成Json字符串与Java集合或对象的相互转换 JSONStringer:Json文本构建类,这个类可以帮助快速和便捷的创建JSON text, 每个JSONStringer实体只能对应创建一个JSON text JSONException:Json异常 JSONObject简单使用示例: infoMap = new HashMap<String, Object>(); try { JSONObject root = new JSONObject(stringBuilder.toString()); Iterator actions = root.keys(); //key()方法返回一个key的迭代器(String类型) while (actions.hasNext()) { String param = actions.next().toString(); Object value = root.get(param); infoMap.put(param, value); } } catch (JSONException e) { e.printStackTrace(); } 执行以上代码就将JSON中的 ”键值“ 输送到HashMap中。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册