安装一个KVM服务器    

案例1:安装一个KVM服务器

案例2:KVM平台构建及简单管理

案例3:virsh基本管理操作

案例4:xml配置文件的应用

案例5:为虚拟机制作快照备份

案例6:快建新虚拟机

1案例1:安装一个KVM服务器

1.1问题

本例要求准备一台RHEL7.2服务器,将其搭建为KVM平台,主要完成下列操作:

关闭本机的SELinux保护、防火墙服务

挂载RHEL7光盘到/mnt/dvd,将其配置为本机YUM源(baseurl=file:///mnt/dvd)

安装KVM相关包组,确保已启用libvirtd服务

1.2方案

RHEL7中的虚拟化服务软件组:

虚拟化平台——"Virtualization Platform"

虚拟化主机——"Virtualization Host"

虚拟化客户端——"Virtualization Client"

另外需要注意,yum命令的软件组管理操作与RHEL6有些小变化:

yum groups list[hidden][组名]...

yum groups info[组名]...

yum groups install[组名]...

yum groups remove[组名]...

1.3步骤

实现此案例需要按照如下步骤进行。

步骤一:配置本地yum仓库

在光驱中插入RHEL7.2的系统光盘(若是虚拟机则连接相应ISO文件),然后在系统中将光盘挂载到/mnt目录。

[root@kvmsvr~]#mkdir /mnt/dvd//创建挂载点

[root@kvmsvr~]#vim /etc/fstab//添加开机挂载配置

....

/dev/cdrom  /mnt/dvd  iso9660  ro  0  0

[root@kvmsvr~]#mount -a//根据fstab配置挂载光盘

mount:/dev/sr0 is write-protected,mounting read-only

2)确认/mnt/dvd访问点

[root@kvmsvr~]#ls /mnt/dvd/Packages/*.rpm//确认软件包位置

....

/mnt/Packages/zsh-5.0.2-14.el7.x86_64.rpm

/mnt/Packages/zziplib-0.13.62-5.el7.i686.rpm

/mnt/Packages/zziplib-0.13.62-5.el7.x86_64.rpm

3)将本地目录/mnt/dvd配置为本机的yum源

[root@kvmsvr~]#yum-config-manager --add-repo file:///mnt/dvd//添加源

....

[root@kvmsvr~]#vim /etc/yum.repos.d/mnt_dvd.repo

[mnt_dvd]

name=added from:file:///mnt/dvd

baseurl=file:///mnt/dvd

enabled=1

gpgcheck=0//禁止GPG检查

[root@kvmsvr~]#yum repolist//列出可用仓库

mnt_dvd|4.1 kB 00:00

(1/2):mnt_dvd/group_gz|136 kB 00:00

(2/2):mnt_dvd/primary_db|3.6 MB 00:00

repo id repo name status

mnt_dvd added from:file:///mnt/dvd 4620

repolist:4620

步骤二:确认RHEL7中的虚拟化软件组

1)安装兼容组信息

[root@kvmsvr~]#yum groups mark convert

....

There is no installed groups file.

Maybe run:yum groups mark convert(see man yum)

Converted old style groups to objects.

2)查看全部软件组,过滤出与虚拟化相关的软件组

[root@kvmsvr~]#yum groups list hidden | grep -i virt

Virtualization Host

Virtualization Client

Virtualization Hypervisor

Virtualization Tools

Virtualization Platform

其中主要的KVM软件组包括Virtualization Host、Virtualization Client、Virtualization Platform,其他两个组会由于依赖关系自动被关联。

步骤三:安装KVM虚拟化

1)安装主要KVM软件组

[root@pc207~]#yum -y groups install "Virtualization Host" "Virtualization Client" "Virtualization Platform"

....

2)确保libvirtd服务可用

[root@kvmsvr~]#systemctl restart libvirtd

[root@kvmsvr~]#systemctl enable libvirtd

3)确保虚拟系统管理器(virt-manager)可用

在KVM服务器的桌面环境中,可以通过“应用程序”菜单组找到“系统工具”-->“虚拟系统管理器”快捷方式(如图-1所示)。

图-1

单击可以成功开启KVM管理工具(如图-2所示),可以看到还没有任何虚拟机。

图-2


案例2:KVM平台构建及简单管理

2.1问题

本例要求在真实KVM服务器上完成以下任务:

新建一个名为rhel7.2的虚拟机,并为其安装好操作系统(注意禁用SELinux机制、禁用防火墙)

将虚拟机rhel7.2克隆为rhel7-c1

开启虚拟机rhel7-c1,以root用户登入到系统

彻底删除虚拟机rhel7-c1

2.2方案

使用KVM提供的virt-manager图形化管理程序来操作。

2.3步骤

实现此案例需要按照如下步骤进行。

步骤一:新建名为rhel7.2的虚拟机

1)在“虚拟系统管理器”中单击左上方“创建新虚拟机”按钮(如图-3所示)。

图-3

2)弹出“新建虚拟机”向导,选择“本地安装介质”(如图-4所示),单击“前进”。

图-4

3)接下来“定位安装介质”,请正确指定RHEL7系统的ISO光盘镜像文件位置(如图-5所示),确认自动识别到操作系统类型,单击“前进”。

图-5

4)选择内存和CPU设置,建议为虚拟机分配内存不小于1024MB(如图-6所示),单击“前进”。

图-6

5)为虚拟机启用存储,例如分配一个40GiB的磁盘(如图-7所示),单击“前进”。

图-7

6)为虚拟机命名,设为rhel7.2(如图-8所示),单击“完成”。

图-8

步骤二:为虚拟机rhel7.2安装操作系统

1)确认新虚拟机从光盘引导

上述设置全部完成后,将会自动开启新虚拟机,并进入安装过程(如图-9所示)。

图-9

2)完成后续手动安装过程

具体过程与普通安装相同,注意禁用防火墙、禁用SELinux机制。

3)确认安装结果

新装的虚拟机rhel7.2可以正常启动、登录。

在“虚拟系统管理器”中也能够看到此虚拟机(如图-10所示)。

图-10

步骤三:克隆虚拟机并验证

1)将被克隆的虚拟机rhel7.2关机

右击选中的虚拟机rhel7.2,选择“关机”-->“强制关机”(如图-11所示),根据提示确认即可。

图-11

2)执行克隆操作

右击已关闭的虚拟机rhel7.2,选择“克隆”,在弹出对话框中指定名称,确认默认设置(如图-12所示),然后单击右下角的“克隆”按钮完成操作。

图-12

3)确认克隆结果

新克隆的虚拟机rhel7.2-c1可以正常启动、登录,可以独立运行。

在“虚拟系统管理器”中也能够看到此虚拟机(图-13所示)。

图-13

步骤四:删除指定的虚拟机

1)删除虚拟机rhel7.2-c1

将虚拟机rhel7.2-c1关机,右击选择“删除”,在弹出窗口中根据需要确认是否删除虚拟机的磁盘,单击右下角的“删除”按钮即可(如图-14所示)。

图-14

2)确认删除结果

在“虚拟系统管理器”界面中,虚拟机rhel7.2-c1已经没有了(如图-15所示)。

图-15


3案例3:virsh基本管理操作

3.1问题

本例要求学会使用virsh命令管理KVM虚拟机,主要完成下列任务:

查看当前KVM服务器的内存/CPU

列出有哪些虚拟机、查看各虚拟机的状态

启动/重启/关机/强制关机操作

设置虚拟机开机自动运行

3.2方案

virsh命令提供了用来管理各虚拟机的命令接口,支持交互模式,可以实现对虚拟机的查看/创建/停止/关闭等各种操作。

用法参考:

virsh控制指令[虚拟机名称][参数]

3.3步骤

实现此案例需要按照如下步骤进行。

步骤一:查看KVM服务器及虚拟机信息

1)查看KVM服务器节点

[root@kvmsvr~]#virsh nodeinfo

CPU型号:x86_64

CPU:4

CPU频率:2600 MHz

CPU socket:1

每个socket的内核数:4

每个内核的线程数:1

NUMA单元:1

内存大小:16230564 KiB

2)列出有哪些虚拟机(包括未开启的)及各自的状态

[root@kvmsvr~]#virsh list--all

Id Name State

----------------------------------------------------

-rhel7.2 shut off

3)查看指定虚拟机rhel7.2的配置摘要信息

[root@kvmsvr~]#virsh dominfo rhel7.2

Id:-

Name:rhel7.2

UUID:207a2b25-fd0f-436e-81ae-ad0fa8861315

OS Type:hvm

State:shut off

CPU(s):1

Max memory:1000448 KiB

Used memory:0 KiB

Persistent:yes

Autostart:disable

Managed save:no

Security model:selinux

Security DOI:0

步骤二:虚拟机开关机操作

1)将虚拟机rhel7.2开启

[root@kvmsvr~]#virsh start rhel7.2//开机

Domain rhel7.2 started

[root@kvmsvr~]#virsh list//检查结果

Id Name State

----------------------------------------------------

5 rhel7.2 running

2)将虚拟机rhel7.2关机

[root@kvmsvr~]#virsh shutdown rhel7.2//关机

Domain rhel7.2 is being shutdown

....//稍等片刻

[root@kvmsvr~]#virsh list --all //检查结果

Id Name State

----------------------------------------------------

-rhel7.2 shut off

3)将虚拟机rhel7.2强制关机(shutdown无效时适用)

[root@kvmsvr~]#virsh destroy rhel7.2//强制关机

Domain rhel7.2 destroyed

[root@kvmsvr~]#virsh list --all//检查结果

Id Name State

----------------------------------------------------

-rhel7.2 shut off

步骤三:虚拟机自启设置

1)将虚拟机rel7.2设为自动启动

[root@kvmsvr~]#virsh autostart rhel7.2//设置自启动

Domain rhel7.2 marked as autostarted

[root@kvmsvr~]#virsh dominfo rhel7.2//确认结果

Id:-

Name:rhel7.2

....

Autostart:enable

....

2)将虚拟机rel7.2取消自动启动

[root@kvmsvr~]#virsh autostart --disable rhel7.2//取消自启动

Domain rhel7.2 unmarked as autostarted

[root@kvmsvr~]#virsh dominfo rhel7.2//确认结果

Id:-

Name:rhel7.2

....

Autostart:disable

....


案例4:xml配置文件的应用

4.1问题

本例要求在KVM服务器上通过使用xml文件完成下列任务:

将虚拟机rhel7.2改名为rhel-207

将虚拟机rhel-207复制为rhel-7

上述虚拟机的CPU/内存/网络类型保持不变

但这2个虚拟机有可能会同时运行,不应出现冲突

4.2方案

KVM虚拟机的xml配置文件也就是通常所说的虚拟机的描述文件,主要用来定义一个虚拟机的名称、UUID、CPU、内存、虚拟磁盘、网卡等各种参数设置。

KVM虚拟机的xml配置文件默认位于:/etc/libvirt/qemu/虚拟机名.xml。

修改虚拟机配置的基本思路:

编辑虚拟机配置:virsh edit虚拟机名

根据需要修改,保存配置结果

4.3步骤

实现此案例需要按照如下步骤进行。

步骤一:将虚拟机rhel7.2改名为rhel-207

1)生成新的UUID字串,并复制备用

[root@kvmsvr~]#uuidgen

76d5dc2c-5eef-4e30-8b6c-e58851814f84

2)编辑虚拟机rhel7.2的配置

调整name、uuid值,保存修改:

[root@kvmsvr~]#virsh edit rhel7.2

<domain type='kvm'>

<name>rhel-207</name>//新名称

<uuid>76d5dc2c-5eef-4e30-8b6c-e58851814f84</uuid>//新UUID值

....

3)确认已自动导入的新配置

[root@kvmsvr~]#virsh list --all

Id Name State

----------------------------------------------------

-rhel-207 shut off//新名称的虚拟机

-rhel7.2 shut off

4)删除旧名称的虚拟机配置

[root@kvmsvr~]#virsh undefine rhel7.2//取消定义虚拟机

Domain rhel7.2 has been undefined

[root@kvmsvr~]#virsh list --all//确认结果

Id Name State

----------------------------------------------------

-rhel-207 shut off

步骤二:将虚拟机rhel-207复制为rhel-7

1)生成新UUID,并复制备用

[root@kvmsvr~]#uuidgen

90908905-bde4-4c4a-90b0-8a8f5bba1e25

2)修改导出后的配置(调整名称、UUID、磁盘路径、网卡MAC)

修改导出的xml配置文件,调整name、uuid、disk路径、mac地址值:

[root@kvmsvr~]#virsh edit rhel-207

<domain type='kvm'>

<name>rhel-7</name>//新名称

<uuid>90908905-bde4-4c4a-90b0-8a8f5bba1e25</uuid>//新UUID值

....

<disk type='file'device='disk'>

<driver name='qemu'type='qcow2'/>

<source file='/var/lib/libvirt/images/rhel-7.qcow2'/>//新磁盘路径

....

</disk>

....

<interface type='network'>

<mac address='52:54:00:91:50:07'/>//新MAC地址

<source network='default'/>

<model type='virtio'/>

<address type='pci'domain='0x0000'bus='0x00'slot='0x03

'function='0x0'/>

</interface>

....

3)确认已自动导入的新配置

[root@kvmsvr~]#virsh list --all//确认结果

Id Name State

----------------------------------------------------

-rhel-207 shut off

-rhel-7 shut off//新虚拟机

4)复制虚拟机磁盘文件

为新虚拟机提供一份独立的磁盘文件:

[root@kvmsvr~]#cd /var/lib/libvirt/images/

[root@kvmsvr images]#cp rhel7.2.qcow2 rhel-7.qcow2

[root@kvmsvr images]#ls//确认结果

rhel-7.qcow2 rhel7.2.qcow2


案例5:为虚拟机制作快照备份

5.1问题

本例要求使用qemu-img及必要的工具,完成下列任务:

将虚拟机rhel-7关机

为虚拟机rhel-7的磁盘制作名为snap1的快照

开启并登入虚拟机rhel-7,在桌面上新建文件1.txt

再次关闭虚拟机rhel-7,还原到快照snap1

重新开启并登入虚拟机rhel-7,检查1.txt文件

5.2方案

KVM虚拟机的快照:通过在虚拟机磁盘镜像内保存不同时间点的状态数据实现备份,在必要时可将虚拟机恢复到指定的快照状态。

qemu-img快照管理基本操作:

创建快照:qemu -img snapshot-c快照名qcow2磁盘

列出快照:qemu -img snapshot-l qcow2磁盘

恢复快照:qemu -img snapshot-a快照名qcow2磁盘

删除快照:qemu -img snapshot-d快照名qcow2磁盘

5.3步骤

实现此案例需要按照如下步骤进行。

步骤一:为虚拟机制作快照

1)确保虚拟机rhel-7已经关机

[root@kvmsvr~]#virsh list --all | grep rhel-7

-rhel-7 shut off

2)为虚拟机rhel-7的磁盘制作快照

[root@kvmsvr~]#cd  /var/lib/libvirt/images/

[root@kvmsvr images]#qemu -img snapshot -c snap1 rhel-7.qcow2//制作快照

[root@kvmsvr images]#qemu -img snapshot -l rhel-7.qcow2//列出快照

Snapshot list:

ID TAG VM SIZE DATE VM CLOCK

1 snap1 0 2017-01-05 15:44:25 00:00:00.000

步骤二:正常使用/更新虚拟机

1)启动虚拟机rhel-7

[root@kvmsvr~]#virsh start rhel-7

Domain rhel-7 started

2)正常登入虚拟机rhel-7,在桌面建立文件1.txt

过程略。

步骤三:还原快照并检查恢复结果

1)关闭虚拟机rhel-7

[root@kvmsvr~]#virsh destroy rhel-7

Domain rhel-7 destroyed

2)将虚拟机rhel-7的磁盘还原到快照snap1

[root@kvmsvr images]#qemu -img snapshot -a snap1 rhel-7.qcow2

3)重新开启虚拟机rhel-7

[root@kvmsvr~]#virsh start rhel-7

Domain rhel-7 started

4)正常登入虚拟机rhel-7,检查桌面的文件1.txt

因为此文件是在建快照之后才建立的,所以还原快照以后就没有了。


案例6:快建新虚拟机

6.1问题

本例要求利用qcow2磁盘特性快建2台新的KVM虚拟机,配置要求如下:

svr7:svr7.tedu.cn,192.168.4.7/24

pc207:pc207.tedu.cn,192.168.4.207/24

为上述虚拟机配好网络,确认yum源可用

从CentOS真机可ssh远程访问这两台虚拟机

6.2方案

快建新虚拟机的基本思路:

提前准备好一台模板虚拟机(镜像磁盘+xml配置文件)

基于qcow2磁盘复用技术快建新虚拟机的磁盘

通过调整模板机的配置快建新虚拟机的xml配置文件

导入新虚拟机

Copy On Write,写时复制技术原理:

直接映射原始盘的数据内容

当原始盘有修改时,在修改之前将旧数据存入前端盘

对前端盘的修改不会回写到原始盘

6.3步骤

实现此案例需要按照如下步骤进行。

步骤一:准备模板虚拟机

找一台已经装好RHEL7系统、配置好本地yum源、关闭SELinux的虚拟机,提取模板虚拟机磁盘、xml配置文件备用。

1)准备磁盘目录、模板虚拟机磁盘文件

[root@kvmsvr~]#qemu -img info /data/images/rhel7_muban.qcow2

image:/data/images/rhel7_muban.qcow2

file format:qcow2

virtual size:300G(322122547200 bytes)//虚拟机磁盘容量

disk size:3.2G//在KVM服务器占用容量

2)准备模板虚拟机配置文件

[root@kvmsvr~]#cat /data/images/rhel7_muban.xml

<domain type='kvm'>

<name>rhel7.2</name>

<uuid>a1992150-5cc7-e19d-20df-cd5cea7d8aa2</uuid>

<memory unit='KiB'>2097152</memory>

....

步骤二:快建虚拟机svr7

1)为虚拟机svr7快速建立前端盘(复用模板机的磁盘数据)

[root@kvmsvr~]#qemu  -img create -f qcow2 -b /data/images/rhel7_muban.qcow2  /data/images/svr7.qcow2

Formatting'  /data/images/svr7.qcow2', fmt=qcow2 size=322122547200 backing_file='/data/images/rhel7_muban.qcow2' encryption=off cluster_size=65536

2)为虚拟机svr7准备xml配置

[root@kvmsvr~]#cp /data/images/rhel7_muban.xml /tmp/svr7.xml//拷贝配置

[root@kvmsvr~]#vim /tmp/svr7.xml//修改配置

<domain type='kvm'>

<name>svr7</name>//新名称

<uuid>b20a1a1c-a2de-4b2f-bb03-91a3e36257c7</uuid>//新UUID值

....

<channel type='unix'>

<source mode='bind'path='/var/lib/libvirt/qemu/channel/t

arget/domain-rhel-7/org.qemu.guest_agent.0'/>//改套接字路径

....

</channel>

<disk type='file'device='disk'>

<driver name='qemu'type='qcow2'/>

<source file='/var/lib/libvirt/images/svr7.qcow2'/>//新磁盘路径

....

</disk>

....

<interface type='network'>

<mac address='52:54:00:11:00:07'/>//新MAC地址

<source network='default'/>

<model type='virtio'/>

<address type='pci'domain='0x0000'bus='0x00'slot='0x03

'function='0x0'/>

</interface>

....

3)定义新虚拟机svr7

[root@room9pc00~]#virsh define /tmp/svr7.xml

定义域svr7(从/tmp/svr7.xml)

4)为虚拟机svr7配置主机名、IP地址

开启虚拟机svr7,使用root用户登入系统。

[root@svr7~]#vim /etc/hostname//配置主机名

svr7.tedu.cn

[root@svr7~]#nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.7/24 connection.autoconnect yes//配置IP地址

[root@svr7~]#nmcli connection up eth0//激活连接

成功激活的连接(D-Bus激活路径:

/org/freedesktop/NetworkManager/ActiveConnection/8)

[root@svr7~]#ifconfig eth0//确认配置结果

eth0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu 1500

inet 192.168.4.7 netmask 255.255.255.0 broadcast 192.168.4.255

inet6 fe80::20c:29ff:fe5e:f686 prefixlen 64 scopeid 0x20<link>

ether 52:54:00:11:00:07 txqueuelen 1000(Ethernet)

RX packets 112143 bytes 9388455(8.9 MiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 507844 bytes 771354289(735.6 MiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

步骤三:快建虚拟机pc207

操作与步骤二类似,此处略。

步骤四:快建虚拟机的运行测试

1)启动两台虚拟机svr7、pc207,均可正常运行

2)从svr7可ping通pc207

[root@svr7~]#ping 192.168.4.207

PING 192.168.4.207(192.168.4.207)56(84)bytes of data.

64 bytes from 192.168.4.207:icmp_seq=1 ttl=64 time=0.392 ms

64 bytes from 192.168.4.207:icmp_seq=2 ttl=64 time=0.369 ms

....

3)从CentOS真机可ssh远程访问这两台虚拟机

[root@room9pc00~]#ssh -X root@192.168.4.7

root@192.168.4.7's password://验证svr7的root密码

Last login:Sun Mar 26 11:30:35 2017 from 192.168.4.254

[root@svr7~]#exit

[root@room9pc00~]#ssh-X root@192.168.4.207

root@192.168.4.207's password://验证pc207的root密码

Last login:Sun Mar 26 11:32:35 2017 from 192.168.4.254

[root@pc207~]#exit

[root@room9pc00~]#

安装一个KVM服务器的更多相关文章

  1. Service系统服务(一):安装一个KVM服务器、KVM平台构建及简单管理、virsh基本管理操作、xml配置文件的应用、为虚拟机制作快照备份、快建新虚拟机

    一.安装一个KVM服务器 目标: 本例要求准备一台 RHEL7.2 服务器,将其搭建为KVM平台,主要完成下列操作: 1> 关闭本机的SELinux保护.防火墙服务   2> 挂载RHEL ...

  2. 用绿色版TOMCAT和绿色版JDK安装一个WEB服务器

    (1) 使用绿色版本JDK,解压到一个目录上D:\jdk1.6.   (2) 使用绿色版本Tomcat,解压到另一个目录上D:\jdk1.6\tomcat5.5 只要在bat文件D:\tomcat5. ...

  3. 树莓派变成一个Web服务器: nginx + php + sqlite

    将树莓派变成一个Web服务器,通过访问网页,就可以控制树莓派,比如:查看摄像头\开灯等等. 一想到Linux Web服务器,我们首先想到的是,Apache + MySql + Php. 树莓派可以安装 ...

  4. VMware vSphere 服务器虚拟化之十八桌面虚拟化之安装View Composer服务器

                        VMware vSphere 服务器虚拟化之十八桌面虚拟化之安装View Composer服务器      View Compose服务可安装在管理虚拟机的vC ...

  5. 树莓派(raspberry pi)学习11: 将树莓派变成一个Web服务器(转)

    将树莓派变成一个Web服务器,通过访问网页,就可以控制树莓派,比如:查看摄像头\开灯等等. 一想到Linux Web服务器,我们首先想到的是,Apache + MySql + Php. 树莓派可以安装 ...

  6. ftp上传文件,本地安装了,服务器上也需要在也安装一个ftp

    服务器需要配置FTP服务: 你说的在你自己电脑上安装的只是一个FTP软件,用于连接远程服务器进行上传和下载文件的. 追问 在本地已经安装了,链接的话要在服务器上也安装一个吗? 追答 额,你有FTP服务 ...

  7. Linux下安装Nginx并配置一个图片服务器

    首先安装nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境. gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没 ...

  8. 在本机使用虚拟机安装一个linux系统,并搭建ftp服务器

    一.Linux基础使用:linux服务器环境搭建(FTP服务器), 在本机使用虚拟机安装一个linux系统,并搭建ftp服务器,要求能使用ftp服务将本机文件到保存linux虚拟机上 资料: VMwa ...

  9. 安装配置KVM虚拟化

    安装KVM虚拟化 KVM需要硬件⽀持, 所以需要开启虚拟化⽀持 硬件设备直接在BIOS设置开启CPU虚拟化 个⼈电脑同样进⼊BIOS开启虚拟化⽀持 VM需要找到对应虚拟机开启对应的VT-EPT虚拟化技 ...

随机推荐

  1. python装饰器见解笔记

    def zsq(fun): def zsq_n(*args,**kwargs) print('这是装饰器需要运行内容') r = fun(*args,**kwargs) print('在被装饰函数执行 ...

  2. selenium 爬boss

    # 有问题 from selenium import webdriver import time from lxml import etree class LagouSpider(object): d ...

  3. Vue2.0 【第一季】第8节 v-pre & v-cloak & v-once

    目录 Vue2.0 [第一季] 第8节 v-pre & v-cloak & v-once v-pre 指令 v-cloak 指令 v-once 指令 Vue2.0 [第一季] 第8节 ...

  4. Flutter Weekly Issue 47

    教程 开辟 Dart 到 Native 的超级通道,饿了么跨平台的最佳实践 当永恒的软键盘问题遇到Flutter 插件 fijkplayer ijkplayer for flutter. ijkpla ...

  5. 微商贴吧企业新浪微博怎么找客户_怎么做好seo

    写的几篇文章对于seo的引流量方面的 怎么做好网络seo优化之SEO项目团队组建 品牌营销_中小企业网络推广的办法 微商怎么引流客源?微商没有客户的解决办法?下 微商怎么引流客源?微商没有客户的解决办 ...

  6. 手写简单IOC

    ReflectUtils.java (反射工具类) package top.icss.ioc; import java.io.File; import java.io.FileFilter; impo ...

  7. 安装SQL Server 2008R2 报错“此计算机上安装了 Microsoft Visual Studio 2008 的早期版本”解决方法

    安装SQL Server 2008 R2报错“此计算机上安装了 Microsoft Visual Studio 2008 的早期版本,请在安装 SQL Server 2008 前将 VS2008 升级 ...

  8. 【转载】因为我们是OIer

    我们是OIer, 所以我们 不用在跑道上挥汗如雨: 不用在球场上健步如飞: 更不用在没事的时候, 经受非人的体能训练-- 但是, 我们却要把头脑 高速运转, 还要接受一大堆 大学生也只是 " ...

  9. [贪心]Codeforces Equal Rectangles

    Equal Rectangles time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  10. [SQL]CASE WHEN的用法及总结

    CASE WHEN的用法及总结 一.已知数据按照另外一种方式进行分组,分析 二.用一个SQL语句完成不同条件的分组 三.在Check中使用Case函数 四.根据条件有选择的UPDATE 五.两个表数据 ...