用Python
来编写脚本简化日常的运维工作是Python
的一个重要用途,在Linux
下,有许多系统命令可以时刻监控系统运行的状态;
**psutil
是python system and process utilities
缩写,python的系统监控及过程管理的工具,是一个功能强大的跨平台系统管理库。**可以实现命令行中类似ps,top,lsof,netstat,ifconfig,who,df,kill
free,nice,ionice,iostant,iotop
等等命令的功能,并且以python内置的数据结构形式返回;
1、显示当前服务器CPU的使用率;
2、显示当前服务器内存的使用率;
3、显示当前服务器硬盘的使用率;
4、显示当前服务器网络的收发情况;
5、显示CPU总核心数、总内存、总硬盘;
6、保存日志信息到log.txt文件中;
7、能够直接执行脚本,查看信息;
(3)空行
(4)请求数据
3、通过网络调试助手模拟TCP服务器,接收request请求
4、小结
目标
整体功能:
1、Web服务器能够绑定固定端口;
2、Web服务器能够接收浏览器请求;
3、Web服务器遵守HTTP协议,并返回“Hello World"字符串给浏览器;
4、当浏览器关闭后,Web服务器能够显示断开连接;
5、Web服务器短时间内重启,不会提示address already in use错误;
实现步骤
1、导入socket模块;
2、创建tcp套接字;
3、设置地址重用;
4、绑定端口bind;
5、设置监听listen,最大允许客户端连接数128(套接字由主动变为被动);
6、等待客户端连接(能够接收多个客户端连接);
7、定义函数,实现客户端信息接收和响应;
8、接收浏览器请求,并判断请求是否为空;
9、拼接响应报文;
10、定义变量保存响应报文内容;
11、发送响应报文给客户端浏览器;
12、关闭此次连接的套接字;
小结
tcp_server_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True)
while True:
new_client_socket,ip_port=tcp_server_socket.accept()
request_handler(new_client_socket,ip_port)
1、Web服务器能够绑定固定端口;
2、Web服务器能够接收浏览器请求;
3、Web服务器遵守HTTP协议,并返回网页index.html的内容给浏览器;
4、当浏览器关闭后,Web服务器能够显示断开连接;
5、Web服务器短时间内重启,不会提示address already in use错误;
1、导入socket模块;
2、创建套接字;
3、设置地址重用;
4、绑定端口IP(服务器必须要做的);
5、设置监听模式,最大允许客户端连接数128,套接字有主动变为被动;
6、等待客户端连接(能够接收多个客户端连接)
7、定义函数,实现客户端信息接收和响应;
8、接收浏览器请求,并判断请求是否为空;
9、拼接响应报文;
10、定义变量保存响应报文内容;
11、打开Index.html文件,并且读取其内容返回给客户端;
12、发送响应报文给客户端浏览器(注意转码问题);
13、关闭此次连接的套接字;
1、Web服务器能够绑定固定端口;
2、Web服务器端能够接收浏览器请求;
3、Web服务器遵守HTTP协议,根据请求返回指定的html内容给浏览器;
4、当浏览器关闭后,Web服务器能够显示断开连接;
5、Web服务器短时间内重启,不会提示address already in use错误;
1、导入socket模块;
2、创建tcp套接字;
3、设置地址重用;
4、绑定端口ip地址;
5、设置监听,最大允许客户端连接数128(套接字主动变被动);
6、等待客户端连接(能够接收多个客户端连接);
7、定义函数,实现客户端信息接收和响应;
8、接收浏览器请求,并判断请求是否为空;
9、拼接响应报文;
10、定义变量保存响应报文内容;
11、获取浏览器发送的请求头信息,分析得到请求html文件路径;
12、根据路径信息,打开指定html文件,并返回内容给客户端浏览器;
13、发送响应报文给客户端浏览器,注意转码问题;
14、关闭此次连接的套接字;
目标
功能分析
1、使用面向对象思想进行封装;
1、创建HttpServer类;
2、创建HttpServer类的构造方法,并在构造方法中对tcp_server_socket创建初始化;
3、创建start()方法,用来web服务器启动;
目标
1、整体功能
1、创建框架构建相关的文件夹;
2、创建app模块文件;
3、在app模块文件中创建application函数(用于处理请求);
4、将request_handler()中的处理逻辑交由app模块的application函数完成;
5、app模块的application函数返回响应报文;
1、创建框架构建相关的文件夹;
2、创建app模块文件;
3、在app模块文件中创建application函数(用于处理请求);
4、将request_handler()中的处理逻辑交由app模块的application函数完成;
5、app模块的application函数响应数据;
6、创建utils模块,并且在该模块中创建create_http_response()函数,专门用来拼接响应报文;
7、在app模块的application函数中调用utils模块中的create_http_response()函数,得到完整的响应报文;
1、导入sys模块;
2、通过sys.argv获取参数列表;
3、判断列表长度是否为2,如果不等于2要给出提示,Web服务器启动失败;
4、取出第二个参数,判断是否是一个数字,如果不是一个数组,给出提示,Web服务器启动失败;
5、接收启动参数端口号;
6、修改类构造方法,使用提供的端口号启动Web服务器;
1、使用浏览器打开指定地址;
2、游戏运行方启动服务器,选择要发布的游戏
3、客户端刷新浏览器即可畅玩新的游戏;
1、定义初始化项目的方法;
2、定义字典保存项目路径 字典格式:key=项目名称 value=路径
3、循环获取字典中的所有Key;
4、根据Key获取游戏的主目录;
5、设置实例属性,保存主目录;
6、修改Web服务器的目录为实例属性保存的主目录;