-
Ycm,我的自动化运维之路
我的运维之路
最开始的运维,就是在终端连接一台主机,远程操作。其次就是一些脚本,解放了重复。之后就是各种python脚本,python提供很多第三方库,可以提高运维效率。
接触到自动化运维工具:ansible,pupple,puppet,Func, Saltstack等一系列监控工具
但所有的资源都是分散的,所以,就要做一款自己的运维平台
-
Python GIL那些事
GIL是什么?
GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码。
- CPython实现中的GIL?
Global Interpreter Lock
In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native threads from executing Python bytecodes at once. This lock is necessary mainly because CPython’s memory management is not thread-safe. (However, since the GIL exists, other features have grown to depend on the guarantees that it enforces.)
一个防止多线程并发执行机器码的一个Mutex
- CPython实现中的GIL?
-
Python的内存管理机制
-
python编写一个端口扫描器
编写一个端口扫描器
- 任何一个靠谱的网络攻击,都是起步于侦察。所以攻击服务器,也就是检查服务的漏洞。我使用的两种方式无非是web注入和端口扫描。所以先编写一个端口扫描器
- 端口扫描是基于TCP的,一共分为三个步骤,分别编写三个方法:
- 处理数据,也就是处理用户输入数据的,此处我们定义为main函数,用来获取主机名和端口
- 将主机名转换为对应的IPv4互联网地址,采socket.gethostbyname(hostname),获取到IP,然后调用处理端口扫描的函数.定义为portScan(tgtHost,tgtPorts)
- 端口扫描,也是就TCP的全连接,对目标地址和端口进行连接。最后为了确定该端口上运行的什么服务,我们还会发送垃圾信息,并读取返回的Banner.函数定义为connScan(tgtHost,tgtPort)