iNet

114.虚拟机命令、克隆虚拟机、快照、格式

梦想的初衷 提交于 2019-11-30 00:59:34
28.8 虚拟机管理 28.9 克隆虚拟机 28.10 快照管理 28.11 磁盘格式 28.8 虚拟机管理 安全完虚拟机需要重启,要退出虚拟机使用快捷键ctrl ] ps aux |grep kvm //查看kvm进程 virsh list //查看虚拟机列表,只能看到运行的虚拟机 virsh list --all //查看虚拟机列表,包括未运行的虚拟机 virsh console aminglinux01//进入指定虚拟机 virsh shutdown aminglinux01 //关闭虚拟机 (正常关机) virsh start aminglinux01 //开启虚拟机 virsh destroy aminglinux01//类似stop,这个是强制停止 (关闭电源) virsh undefine aminglinux01//彻底销毁虚拟机,会删除虚拟机配置文件(cat /etc/lilbvirt/qemu/aminglinux01.xml),virsh list --all就看不到了 #虚拟磁盘文件(aminginux.img)是没有删掉的,只有删除这个核心文件才会彻底删除虚拟机 ls /etc/libvirt/qemu/ //可以查看虚拟机配置文件 virsh autostart aminglinux01//宿主机开机该虚拟机也开机 virsh autostart -

虚拟机之xshell远程连接Ubuntu16虚拟机

霸气de小男生 提交于 2019-11-29 23:25:20
虚拟机之Xshell远程连接Ubuntu16虚拟机   1、如果是正常安装完毕的Ubuntu16系统,此时已有openssh-client,所以只需安装openssh-server即可。   2、输入如下命令:ps -e |grep ssh,如果没有任何反应,则说明未安装。   3、安装命令如下所示:sudo apt-get install openssh-server,按照提示进行安装即可。安装完成之后,输入2中命令,如出现下图所示即为安装成功:          4、在终端中输入ifconfig,找到“inet 地址”,该地址就是IP地址。   5、打开xshell,新建会话,在该属性中左侧有一个类别列表。选择 连接 属性:在主机栏输入步骤4中得到的IP地址,端口号为22(修改端口号首先要在Ubuntu中修改ssh对应的端口号)。选择 用户身份验证 属性:输入Ubuntu系统登录时的用户名和密码。   6、连接完成 来源: https://my.oschina.net/Userxs/blog/3107260

centos7上部署vnc服务器并实现远程桌面

懵懂的女人 提交于 2019-11-29 19:52:50
centos7上部署vnc服务器并实现远程桌面 centos7上进行一下操作 [root @localhost ~]# yum install tigervnc-server -y#安装vnc服务器 Loaded plugins: fastestmirror, langpacks base | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 updates | 3.4 kB 00:00:00 (1/2): extras/7/x86_64/primary_db | 129 kB 00:00:00 (2/2): updates/7/x86_64/primary_db | 3.6 MB 00:00:00 Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.163.com * updates: mirrors.zju.edu.cn Resolving Dependencies --> Running transaction check ---> Package tigervnc-server.x86_64 0:1.8.0-1.el7 will be installed --> Finished Dependency

使用golang的net包进行域名解析过程分析

霸气de小男生 提交于 2019-11-29 08:54:30
背景: 在实际的互联网使用过程中,大家熟知的是使用域名来直接访问一个服务,但随着互联网业务架构的不断优化,可能对用用户来说访问一个域名获取到相关的资源是很简单的一步,但其实对于互联网整个请求过程其实是做了很多次调用,那最开始的一步就是dns解析。当然在linux环境下,用来做dns解析的工具有很多,比如 dig 和 nslookup 之类的,但是通常对于复杂问题的排查直接去机器上去很显然是不太现实的,因此打算使用golang的接口来封装域名解析服务,来提供后期的操作. 1. net包的使用 和dns相关结构体方法 # nameserver结构体 type NS struct { Host string } # srv记录 指定该域名由哪个DNS服务器来进行解析 type SRV struct { Target string Port uint16 Priority uint16 Weight uint16 } # dns正向解析(域名解析到cname或者实际的ip地址) ## 仅返回指定域名name的cname地址 func LookupCNAME(name string) (cname string, err error) ## 直接返回域名解析到地址. func LookupHost(host string) (addrs []string, err error) ##

数据库的设计规范?

二次信任 提交于 2019-11-29 07:59:02
数据库设计规范 数据库设计之三大范式 要求表的每个字段必须是一个不可分割的独立的单元 在第一范式的基础上,要求每张表只表达一个意思。表中的每个字段都和主键有依赖 在第二范式基础,要求每张表的主键之外的其他字段都只能和主键有直接的决定依赖关系 数据库结构设计 逻辑设计----->物理设计 实际工作 逻辑设计 + 物理设计 物理设计 表名 字段名 字段类型 规范制定 一、数据库命名规范 所有的数据库对象名称必须使用小写字母,并且使用下划线分割,因为mysql在linux系统下是大小写敏感的。 所有的数据库对象名称禁止使用mysql保留关键字,如果一定要使用,则需要使用 from `` 括起来。 数据库对象的命名要做到见名识义,并且最好不要超过32个字符,例如 用户数据库:yy_userdb,用户账号表:user_account 所有的临时表必须以tmp_ 开头,备份表必须以bak_ 开头,并以日期为后缀,例如tmp_user_20190721,便于标识表,和后面清理数据作为依据 所有的存储相同数据的列名和列类型必须一致,一般是作为关联列使用,如果类型不一样,在做关联的时候,会做隐式的列类型转换,同时也会造成列上的索引失效,同时查询效率大幅降低 二、数据库基本设计规范 所有表必须使用Innodb存储引擎。Mysql5.5使用之前Myisam(默认存储引擎)情况(不支持事务),。原因:-1

IPPROTO_IP , IPPROTO_RAW

纵然是瞬间 提交于 2019-11-29 06:25:54
对于socket(AF_INET, SOCK_RAW, IPPROTO_IP),其原型为 int socket (int domain, int type, int protocol); 1 参数protocol用来指明所要接收的协议包,如果是象IPPROTO_TCP(6)这种非0、非255的协议,当操作系统内核碰到ip头中protocol域和创建socket所使用参数protocol相同的IP包,就会交给这个raw socket来处理,因此,一般来说,要想接收什么样的数据包,就应该在参数protocol里来指定相应的协议。当内核向此raw socket交付数据包的时候,是包括整个IP头的,并且已经是重组好的IP包。 2 如果protocol是IPPROTO_RAW(255),这时候,这个socket只能用来发送IP包,而不能接收任何的数据。发送的数据需要自己填充IP包头,并且自己计算校验和。 3 对于protocol为0(IPPROTO_IP)的raw socket。用于接收任何的IP数据包。其中的校验和和协议分析由程序自己完成。 来源: https://my.oschina.net/u/1777508/blog/3101883

网络编程:Socket编程从IPv4转向IPv6支持

心已入冬 提交于 2019-11-29 04:43:36
目前运行主流的IT系统中,用于解决分布式系统内部模块及不同的系统间通信的一种主要的解决方案就是使用套接字Socket来开发应用。由于当前大部分正在运行的IT系统中使用套接字Socket开发环境基本上都是基于IPv4完成的,因此在IT系统由IPv4向IPv6演进方案中如何完成这部分相关应用的演进就显得尤为的关键,下面本文将从技术角度分别从编程API接口的差异性、为实现IPv6重构软件的关键技术及如何支持IPv4及IPv6双栈完成演进等这几个方面进行分析,给出完整的解决方案 1. 基于SOCKET技术的接口协议 通常用BSD Socket API (Windows平台用Win Socket API)作为基础开发应用协议。以下是IT系统常用的接口协议: 基于SOCKET技术的接口协议通常以SOKET API作为为基础开发应用协议,下表是IT系统常用的接口协议: 序号 协议名称 类型 1 TELNET TCP 2 SSH TCP 3 FTP TCP 4 TFTP TCP 5 SNMP UDP 6 SOCKET自定义 TCP/UDP,IT系统或厂商基于SOKET API定义的私有协议 Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议。应用Telnet协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。它提供了三种基本服务: (1)

HTTP静态WEB服务器

久未见 提交于 2019-11-29 02:21:53
HTTP静态WEB服务器 HTTP的作用 伯纳斯-李在1989年提出了万维网的基本框架,三个核心概念分别是HTTP协议、URL和HTML。HTTP协议就是浏览器和web服务器之间特定的数据传输格式。 HTTP网络协议栈由以下几部分构成,加入安全层的即为HTTPS协议。 物理层: 数据链路层:提供网络结构 网络层:IP 传输层:TCP (安全层:SSL) 应用层:HTTP 与基于TCP的服务器相比,HTTP服务器特殊之处是接受和发送的内容为HTTP报文,HTTP报文由三部分构成,Start line、Header、Body。 面向对象的HTTP静态WEB服务器 import socket, sys, threading class HttpServer(object): '''定义一个HTTP服务器''' def __init__(self,port): static_web_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) static_web_server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True) # 能够通过输入制定端口 static_web_server.bind(('127.0.0.1', port)) self.static_web

原始套接字 IP_HDRINCL

前提是你 提交于 2019-11-28 23:38:18
原始套接字可以访问ICMP和ICMP等协议包,可以读写内核不处理的IP数据包。可以创建自定义的IP数据包首部。一句话,使用原始套接字可以   编写基于IP协议的通讯程序。   1.创建原始套接字具体格式如下:int sockfd;sockfd = socktet(AF_INET, SOCK_RAW, IPPROTO_ICMP);第一个参数:协议族 AF_INET 代表TCP/IP协议第二个参数:SOCKET类型第三个参数:协议类型注意:@如果指定协议为0时,原始套接字可以接收内核传递给原始套接字的任何IP数据包,且只有超级用户才可以创建原始套接字。   @当需要编写自己的IP数据包首部时,可以在原始套接字上设置套接字选项IP_HDRINCL.在不设置这个选项的情况下,IP协议自动填充IP数据包的首部。   int on = 1;if(setsockopt(sockfd, IPPROTO_IP, IP_HDRINCL, &on, sizeof(on)) < 0)   { fprintf(stderr, "setsockopt IP_HDRINCL ERROR! /n");exit(1);}   原始套接字直接使用IP协议的套接字,所以是非面向连接的。在这个套接字上可以调用connect和bind函数,分别执行绑定对方和本地地址。   说明:   bind函数:调用bind函数后

基于TCP客户端和服务端的数据交换

戏子无情 提交于 2019-11-28 22:13:38
基于TCP客户端和服务端的数据交换 TCP套接字 TCP套接字是面向连接、基于流(stream)的套接字,数据收发无边界。 send 调用后数据移动至输出缓冲, recv 调用瞬间,从输入缓冲读取数据。具有一下特性: I/O缓冲在创建socket时生成; 各TCP socket的I/O缓冲独立存在; 关闭socket,输出缓冲中的数据继续传输,输入缓冲中的数据将丢失。 具体实现 需求 使用TCP完成数据的上传和下载 (1) 准备: 文件夹中新建四个txt文件,1.txt、2.txt、3.txt、4.txt (2) 编写TCP客户端程序, ① TCP的客户端具有的功能:输入 文件的名字,发送到服务器 实现文件的下载 ② 客户端接收服务器端返回的数据进行判断,如果是 标识: error,提示用户文件不存在,否则将数据保存到本地 (3) 编写服务端程序 ① 接收客户端的消息,根据客户端发来的文件名,从桌面的info文件夹中读取相应的文件内容返回给客户端 ② 如果要下载的文件不存在,则返回 标识: error 客户端 import socket # 创建并连接 client = socket.socket(socket.AF_INET,socket.SOCK_STREAM) client.connect(('localhost', 6060)) # 输入并发送文件名 filename =