KVM 安装

KVM介绍

Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。
KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。

1、环境准备

2、规划说明

开启之后修改IP地址:
本次规划IP地址
IP地址 硬盘大小 内存大小
10.0.0.88 8G 2G

3、虚拟化概念

1.软件模拟

优点:能够模拟任何硬件,包括不存在的
缺点:功能非常低效,一般用于研究,生产环境不同。
代表:QEM

2.虚拟化层翻译

2.1 软件全虚拟化,通过虚拟化层翻译 ===> 你和美国人说话 —需要通过翻译=VMware
2.2 半虚拟化  改动虚拟机的内核(linux)加上虚拟化层翻译
======>学了英语在和美国人交流   xen(被淘汰)
2.3 硬件支持的全虚拟化   ===>你重生到美国和美国人交流  KVM
3.容器虚拟化 docker

安装

KVM已经集成了,我们需要安装管理软件
  1. [root@kvm /]# egrep '(vmx|svm)' /proc/cpuinfo 
  2. flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dts tpr_shadow vnmi ept vpid fsgsbase smep
  3. [root@kvm /]# yum -y install qemu-kvm qemu-kvm-tools virt-manager libvirt python-virtinst libvirt-python
  4. [root@kvm yum.repos.d]# rpm -qa qemu-kvm qemu-kvm-tools virt-manager libvirt python-virtinst libvirt-python
  5. libvirt-python-0.10.2-60.el6.x86_64
  6. python-virtinst-0.600.0-29.el6.noarch
  7. virt-manager-0.9.0-31.el6.x86_64
  8. qemu-kvm-0.12.1.2-2.491.el6_8.1.x86_64
  9. libvirt-0.10.2-60.el6.x86_64
  10. qemu-kvm-tools-0.12.1.2-2.491.el6_8.1.x86_64
  11. [root@kvm yum.repos.d]# lsmod|grep kvm
  12. kvm_intel              55624  0 
  13. kvm                   341551  1 kvm_intel
查看我们的管理工具
  1. [root@kvm yum.repos.d]# rpm -ql qemu-kvm
  2. /etc/ksmtuned.conf
  3. /etc/modprobe.d/blacklist-kvm.conf
  4. /etc/rc.d/init.d/ksm
  5. /etc/rc.d/init.d/ksmtuned
  6. /etc/sasl2/qemu-kvm.conf
  7. /etc/sysconfig/ksm
  8. /etc/sysconfig/modules/kvm.modules
  9. /etc/udev/rules.d/80-kvm.rules
  10. /usr/libexec/qemu-kvm
  11. /usr/sbin/ksmtuned
  12. /usr/share/doc/qemu-kvm-0.12.1.2/COPYING
  13. /usr/share/doc/qemu-kvm-0.12.1.2/COPYING.LIB
  14. /usr/share/doc/qemu-kvm-0.12.1.2/Changelog
  15. /usr/share/doc/qemu-kvm-0.12.1.2/LICENSE
  16. /usr/share/doc/qemu-kvm-0.12.1.2/README
  17. /usr/share/doc/qemu-kvm-0.12.1.2/README.systemtap
  18. /usr/share/doc/qemu-kvm-0.12.1.2/TODO
  19. /usr/share/doc/qemu-kvm-0.12.1.2/qemu-doc.html
  20. /usr/share/doc/qemu-kvm-0.12.1.2/qemu-tech.html
  21. /usr/share/man/man1/qemu-kvm.1.gz
  22. /usr/share/qemu-kvm
  23. /usr/share/qemu-kvm/bios.bin
  24. /usr/share/qemu-kvm/dump-guest-memory.py
  25. /usr/share/qemu-kvm/dump-guest-memory.pyc
  26. /usr/share/qemu-kvm/dump-guest-memory.pyo
  27. /usr/share/qemu-kvm/extboot.bin
  28. /usr/share/qemu-kvm/keymaps
  29. /usr/share/qemu-kvm/keymaps/ar
  30. /usr/share/qemu-kvm/keymaps/common
  31. /usr/share/qemu-kvm/keymaps/da
  32. /usr/share/qemu-kvm/keymaps/de
  33. /usr/share/qemu-kvm/keymaps/de-ch
  34. /usr/share/qemu-kvm/keymaps/en-gb
  35. /usr/share/qemu-kvm/keymaps/en-us
  36. /usr/share/qemu-kvm/keymaps/es
  37. /usr/share/qemu-kvm/keymaps/et
  38. /usr/share/qemu-kvm/keymaps/fi
  39. /usr/share/qemu-kvm/keymaps/fo
  40. /usr/share/qemu-kvm/keymaps/fr
  41. /usr/share/qemu-kvm/keymaps/fr-be
  42. /usr/share/qemu-kvm/keymaps/fr-ca
  43. /usr/share/qemu-kvm/keymaps/fr-ch
  44. /usr/share/qemu-kvm/keymaps/hr
  45. /usr/share/qemu-kvm/keymaps/hu
  46. /usr/share/qemu-kvm/keymaps/is
  47. /usr/share/qemu-kvm/keymaps/it
  48. /usr/share/qemu-kvm/keymaps/ja
  49. /usr/share/qemu-kvm/keymaps/lt
  50. /usr/share/qemu-kvm/keymaps/lv
  51. /usr/share/qemu-kvm/keymaps/mk
  52. /usr/share/qemu-kvm/keymaps/modifiers
  53. /usr/share/qemu-kvm/keymaps/nl
  54. /usr/share/qemu-kvm/keymaps/nl-be
  55. /usr/share/qemu-kvm/keymaps/no
  56. /usr/share/qemu-kvm/keymaps/pl
  57. /usr/share/qemu-kvm/keymaps/pt
  58. /usr/share/qemu-kvm/keymaps/pt-br
  59. /usr/share/qemu-kvm/keymaps/ru
  60. /usr/share/qemu-kvm/keymaps/sl
  61. /usr/share/qemu-kvm/keymaps/sv
  62. /usr/share/qemu-kvm/keymaps/th
  63. /usr/share/qemu-kvm/keymaps/tr
  64. /usr/share/qemu-kvm/linuxboot.bin
  65. /usr/share/qemu-kvm/multiboot.bin
  66. /usr/share/qemu-kvm/pxe-e1000.bin
  67. /usr/share/qemu-kvm/pxe-ne2k_pci.bin
  68. /usr/share/qemu-kvm/pxe-pcnet.bin
  69. /usr/share/qemu-kvm/pxe-rtl8139.bin
  70. /usr/share/qemu-kvm/pxe-virtio.bin
  71. /usr/share/qemu-kvm/sgabios.bin
  72. /usr/share/qemu-kvm/simpletrace.py
  73. /usr/share/qemu-kvm/simpletrace.pyc
  74. /usr/share/qemu-kvm/simpletrace.pyo
  75. /usr/share/qemu-kvm/systemtap/conf.d/qemu_kvm.conf
  76. /usr/share/qemu-kvm/systemtap/script.d/qemu_kvm.stp
  77. /usr/share/qemu-kvm/trace-events
  78. /usr/share/qemu-kvm/vapic.bin
  79. /usr/share/qemu-kvm/vgabios-cirrus.bin
  80. /usr/share/qemu-kvm/vgabios-qxl.bin
  81. /usr/share/qemu-kvm/vgabios-stdvga.bin
  82. /usr/share/qemu-kvm/vgabios-vmware.bin
  83. /usr/share/qemu-kvm/vgabios.bin
  84. /usr/share/systemtap/tapset/qemu-kvm-simpletrace.stp
  85. /usr/share/systemtap/tapset/qemu-kvm.stp
软件包解释
  1. [root@m01 kvm]# rpm -qa|grep -E 'qemu|libvirt|virt'
  2. libvirt-python-0.10.2-60.el6.x86_64      #libvirt的图形化虚拟机管理软件,需要图形界面操作系统
  3. virt-what-1.11-1.2.el6.x86_64            #基于Libvirt的图像化虚拟机管理软件,需要图形界面操作系统
  4. qemu-img-0.12.1.2-2.491.el6_8.1.x86_64   #用于操作虚拟机硬盘镜像的创建、查看和格式化转化
  5. gpxe-roms-qemu-0.9.7-6.15.el6.noarch     #虚拟机IPXE的启动固件,支持虚拟机从网络启动
  6. libvirt-client-0.10.2-60.el6.x86_64      #Libvirt的客户端,最重要的功能之一就是在宿主机关机时可以通过虚拟机也关机,使虚拟机系统正常关机,而不是被强制关机,造成数据丢失
  7. python-virtinst-0.600.0-29.el6.noarch    #一套Python的虚拟机安装工具
  8. virt-manager-0.9.0-31.el6.x86_64         #基于Libvirt的图像化虚拟机管理软件,需要图形界面操作系统
  9. qemu-kvm-0.12.1.2-2.491.el6_8.1.x86_64   #KVM在用户运行的程序
  10. libvirt-0.10.2-60.el6.x86_64             #用于管理虚拟机,它提供了一套虚拟机操作API
  11. qemu-kvm-tools-0.12.1.2-2.491.el6_8.1.x86_64
加入host 解析
  1. vim /etc/host
  2. 10..0.88 kmv
启动服务(libvirt)管理kvm
  1. [root@kvm yum.repos.d]# /etc/init.d/libvirtd start
  2. Starting libvirtd daemon:                                  [  OK  ]
生成了几个网卡
  1. [root@kvm yum.repos.d]# ip add
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
  3.     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  4.     inet 127.0.0.1/8 scope host lo
  5.     inet6 ::1/128 scope host 
  6.        valid_lft forever preferred_lft forever
  7. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  8.     link/ether 00:0c:29:30:e9:bc brd ff:ff:ff:ff:ff:ff
  9.     inet 10.0.0.88/24 brd 10.0.0.255 scope global eth0
  10.     inet6 fe80::20c:29ff:fe30:e9bc/64 scope link 
  11.        valid_lft forever preferred_lft forever
  12. 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  13.     link/ether 00:0c:29:30:e9:c6 brd ff:ff:ff:ff:ff:ff
  14.     inet 172.16.1.88/24 brd 172.16.1.255 scope global eth1
  15.     inet6 fe80::20c:29ff:fe30:e9c6/64 scope link 
  16.        valid_lft forever preferred_lft forever

  17. 4: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
  18.     link/ether 52:54:00:57:95:13 brd ff:ff:ff:ff:ff:ff
  19.     inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
  20. 5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 500
  21.     link/ether 52:54:00:57:95:13 brd ff:ff:ff:ff:ff:ff
DNS小工具
  1. [root@kvm yum.repos.d]# ps -ef|grep dns
  2. nobody     2735      1  0 11:31 ?        00:00:00 /usr/sbin/dnsmasq --strict-order --pid-file=/var/run/libvirt/network/default.pid --conf-file= --except-interface lo --bind-interfaces --listen-address 192.168.122.1 --dhcp-range 192.168.122.2,192.168.122.254 --dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases --dhcp-lease-max=253 --dhcp-no-override --dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile --addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts
  3. root       2793   2272  0 11:32 pts/1    00:00:00 grep dns
管理dhcp的一些功能。
1.创建虚拟磁盘
  1. [root@kvm yum.repos.d]# qemu-img create -f raw /opt/kvm.raw 10G
  2. Formatting '/opt/kvm.raw', fmt=raw size=10737418240 
  3. ================================================================
  4. [root@kvm yum.repos.d]# df -h                      
  5. Filesystem      Size  Used Avail Use% Mounted on
  6. /dev/sda3       6.6G  1.9G  4.4G  31% /
  7. tmpfs           932M     0  932M   0% /dev/shm
  8. /dev/sda1       190M   36M  145M  20% /boot
2.挂载镜像光盘
挂载(此处不能使用mount)
  1. [root@kvm ~]# dd if=/dev/cdrom of=CentOS6.7.ios
  2. [root@kvm ~]# dd if=/dev/cdrom of=CentOS6.7.ios
  3. 7608320+0 records in
  4. 7608320+0 records out
  5. 3895459840 bytes (3.9 GB) copied, 164.972 s, 23.6 MB/s
下载软件包
TightVNC_2.7.10
最后界面
创建虚拟机
  1. [root@kvm ~]#virt-install --virt-type=kvm --name=kvm-demo -r 1024 -/root/CentOS6.7.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel6 --disk path=/opt/kvm.raw  
  2. [root@kvm ~]# mv CentOS6.7.ios /opt/
  3. [root@kvm ~]# virt-install --virt-type=kvm --name=kvm-demo -r 1024 -c /opt/CentOS6.7.ios --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel6 --disk path=/opt/kvm.raw
  4. Starting install...
  5. Creating domain...                               |    0 B     00:01     
  6. Domain installation still in progress. You can reconnect to 
  7. the console to complete the installation process.
和安装操作系统一样
选包文章:http://oldboy.blog.51cto.com/2561410/1564620
[root@kvm ~]# virsh list –all 查看所有虚拟机
[root@kvm ~]# virsh start kvm-demo  关闭虚拟机,接虚拟机名字即可
Domain kvm-demo started
开启接上即可
[root@kvm opt]# virsh destroy kvm-demo 停止
[root@kvm ~]# netstat -tunlp|grep qemu-kvm 查看启动的进程
[root@kvm opt] virsh undefine kvm-demo 强制关闭
[root@kvm ~]# virsh resume kvm-demo   暂停
生成kvm虚拟机:virt-install
查看在运行的虚拟机:virsh list
查看所有虚拟机:virsh list –all
查看kvm虚拟机配置文件:virsh dumpxml name
启动kvm虚拟机:virsh start name
正常关机:virsh shutdown name 
非正常关机(相当于物理机直接拔掉电源):virsh destroy name
删除:virsh undefine name(彻底删除,找不回来了,如果想找回来,需要备份/etc/libvirt/qemu的xml文件)
根据配置文件定义虚拟机:virsh define file-name.xml
挂起,终止:virsh suspend name
恢复挂起状态:virsh resume name
=====================================
配置网络,连接!  ok~
[root@kvm ~]# virt-install –virt-type=kvm –name=kvm-demo -r 1024 -c /opt/CentOS6.7.ios –network network=default –graphics vnc,listen=0.0.0.0,port=5901 –noautoconsole –os-type=linux –os-variant=rhel6 –disk path=/opt/kvm.raw
在添加一台需要指定端口port
http://blog.csdn.net/starshine/article/details/8179483
使用undefined 删除只是删除这下面的文件
[root@m01 oldboy]# cd /etc/libvirt/qemu
[root@m01 qemu]# ls
kvm-demo.xml  networks
制作快照
raw 和qcow2简单区别
raw不支持快照
qcow2支持快照
[root@m01 kvm]# qemu-img convert -c -f raw -O qcow2 kvm.raw kvm.qcow2
[root@m01 kvm]# ll -h
total 6.7G
-rw-r–r– 1 qemu qemu 3.7G Jul  5 12:49 CentOS6.7.ios
-rw-r–r– 1 root root 756M Jul  5 16:00 kvm.qcow2
-rw-r–r– 1 qemu qemu  18G Jul  5 16:01 kvm.raw
drwx—— 2 root root  16K Jul  5 12:43 lost+found
virsh edit kvm-demo
提示raw类型分区无法进行制作快照,所以我们修改分区类型
  1. 23
  2. <driver name='qemu' type='raw' cache='none'/>
  3. <driver name='qemu' type='qcow2' cache='none'/>
  4. 24
  5. <source file='/kvm/kvm.raw'/>
  6. <source file='/kvm/kvm.qcow2'/>
[root@m01 kvm]# ps -ef|grep –color=auto qcow   检查
[root@m01 kvm]# virsh snapshot-create-as kvm-demo kvm-demo-shot1  创建快照
kvm-demo=虚拟机名
kvm-demo-shot1 =快照名
查看所有虚拟机快照
[root@m01 kvm]# virsh snapshot-list kvm-demo  指定虚拟机快照
Name                 Creation Time             State
————————————————————
kvm-demo-shot1       2016-07-05 16:20:50 +0800 running
查看某一个虚拟机快照的信息
  1. [root@m01 kvm]# virsh snapshot-info kvm-demo kvm-demo-shot1 
  2. kvm-demo=虚拟机
  3. kvm-demo-shot1 =快照名
  4. Name:           kvm-demo-shot1
  5. Domain:         kvm-demo
  6. Current:        yes
  7. State:          running
  8. Location:       internal
  9. Parent:         -
  10. Children:       0
  11. Descendants:    0
  12. Metadata:       yes
存放虚拟机的配置路径
[root@m01 kvm]# ll /var/lib/libvirt/qemu/虚拟机配置文件
[root@m01 kvm]# ls /etc/libvirt/qemu/ 网络配置文件(服务)
快照存放路径
[root@m01 kvm]# ll /var/lib/libvirt/qemu/snapshot/kvm-demo/
total 4
-rw——- 1 root root 3475 Jul  5 16:20 kvm-demo-shot1.xml
还原快照
[root@m01 kvm]# virsh snapshot-revert kvm-demo kvm-demo-shot1 
删除快照
[root@m01 kvm]# virsh snapshot-delete kvm-demo kvm-demo-shot1   
克隆虚拟机
1.设置网卡,关闭selinux和iptables
2.清空/etc/udev
导出xml文件
[root@m01 kvm]# virsh dumpxml kvm-demo >kvm-clone.xml
复制kvm.qcow2(导出磁盘文件)
[root@m01 kvm]# cp kvm.qcow2 kvm-clone.qcow2
[root@m01 kvm]# ll -h
total 7.8G
-rw-r–r– 1 qemu qemu 3.7G Jul  5 12:49 CentOS6.7.ios
-rw-r–r– 1 root root 981M Jul  5 17:13 kvm-clone.qcow2
-rw-r–r– 1 root root 2.8K Jul  5 17:12 kvm-clone.xml
-rw-r–r– 1 root root 981M Jul  5 17:11 kvm.qcow2
-rw-r–r– 1 root root  18G Jul  5 16:12 kvm.raw
drwx—— 2 root root  16K Jul  5 12:43 lost+found
修改xml配置文件
[root@m01 kvm]# vim kvm-clone.xml 
  1.   <name>kvm-clone</name>
  2.  <uuid>0bb17855-95db-442b-ac9f-d855d63badd2</uuid>
  3. <source file='/kvm/kvm-clone.qcow2'/>
  4. <mac address='52:54:00:ae:49:b1'/>
===============================================
可以随机生成uuid
  1. [root@m01 oldboy]# cat /proc/sys/kernel/random/uuid 
  2. 0bb17855-95db-442b-ac9f-d855d63badd2
修改了以下结果
  1.  [root@kvm opt]# diff kvm-clone.xml*
  2. 2,3c2,3
  3. <   <name>kvm-clone</name>
  4. <   <uuid>0a515a20-ea43-4b4b-9683-688c4792800f</uuid>
  5. ---
  6. >   <name>kvm-demo</name>
  7. >   <uuid>45fd0d59-268f-0968-7101-e27d633286b7</uuid>
  8. 24c24
  9. <       <source file='/opt/kvm-clone.qcow2'/>
  10. ---
  11. >       <source file='/opt/kvm.qcow2'/>
  12. 53c53
  13. <       <mac address='52:54:00:9a:7a:1d'/>
  14. ---
  15. >       <mac address='52:54:00:9a:7a:bd'/>
导入进去
  1. [root@m01 kvm]# virsh define kvm-clone.xml 
  2. Domain kvm-clone defined from kvm-clone.xml
  3. [root@m01 kvm]# virsh list --all
  4.  Id    Name                           State
  5. ----------------------------------------------------
  6.  -     kvm-clone                      shut off
  7.  -     kvm-demo                       shut off
启动虚拟机
  1. [root@m01 kvm]# virsh start kvm-clone
  2. Domain kvm-clone started
  3. [root@m01 kvm]# virsh list --all
  4.  Id    Name                           State
  5. ----------------------------------------------------
  6.  7     kvm-clone                      running
  7.  -     kvm-demo                       shut off
  8. [root@m01 kvm]# virsh start kvm-demo
  9. Domain kvm-demo started
  10. [root@m01 kvm]# virsh list --all
  11.  Id    Name                           State
  12. ----------------------------------------------------
  13.  7     kvm-clone                      running
  14.  8     kvm-demo                       running
更多介绍:
openstack  
cloudstack
ovirt 
RHEV,即Red Hat Enterprise virtualization的缩写,中文全称红帽企业虚拟化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575953.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

彼聆智能语音机器人_电销行业的人工智能:智能语音电话机器人

随着人工智能的发展&#xff0c;越来越多的机器人出现在我们的日常生活中&#xff0c;用于电话营销公司的自动打电话机器人、快递公司用来送快递的机器人、餐厅里用来上菜的机器人&#xff0c;最近更是有一款会后空翻的机器人。机器人正活跃在各行各业中&#xff0c;代替人类去…

Shell 基础介绍 [1]

本文目录1.什么是Shell&#xff1f;2.脚本语言类型3.其他常用的脚本语句种类4.Shell脚本的建立和执行5.Shell 变量类型6.普通变量7.Shell 特殊重要变量8.Shell进程状态变量9.Parameter Expansion10.扩展&#xff1a;其他变量的替换11.变量的数值&#xff08;整数&#xff09;计…

c++创建二叉树_数据结构:查找(4)|| 平衡二叉树

在介绍平衡二叉树之前&#xff0c;应该先了解平衡因子的概念&#xff0c;平衡因子定义为左子树深度减去右子树深度&#xff0c;这个值的绝对值越大&#xff0c;非常容易理解它就对应着越不平衡的情况。一棵平衡的二叉树的平衡因子只能是1&#xff0c;0&#xff0c;-1如何构建一…

华睿相机sdk 开发_索尼发布相机远程操作SDK(软件开发工具包)

索尼从2020年12月9日开始&#xff0c;向开发者免费提供针对索尼数码相机的软件开发工具包“ Camera Remote SDK” 1.03版。“ Camera Remote SDK”开发的软件可以远程更改相机设置、并执行诸如快门释放&#xff0c;实时取景监视(如取景和对焦)之类的操作。支持的操作系统包括Wi…

Linux 字体颜色设置

本文主要介绍Linux 字体颜色的调整&#xff0c;常用于shell脚本当中。我们举一个例子&#xff1a;echo-e"\033[44;37;5m ME \033[0m COOL" 以上命令设置背景成为蓝色&#xff0c;前景白色&#xff0c;闪烁光标&#xff0c;输出字符“ME”&#xff0c;然后重新设置屏幕…

利用Unity实现AOP

.NET程序中&#xff0c;可以利用Unity来实现AOP&#xff0c;用来进行日志、缓存或权限的处理。这里我们来写一个简单的程序&#xff0c;让其实现简单的AOP功能。 1.使用NuGet&#xff0c;在项目中获取Microsoft.Practices.Unity。 2.新建一个ITalk类及其实现 public interface …

javascript数组的各种操作

用 js有非常久了&#xff0c;但都没有深究过js的数组形式。偶尔用用也就是简单的string.split(char)。这段时间做的一个项目&#xff0c;用到数组的地方非常多&#xff0c;自以为js高手的自己竟然无从下手&#xff0c;一下狠心&#xff0c;我学&#xff01;呵呵。学了之后才知道…

老男孩Shell企业面试题30道 [答案]

老男孩Shell企业面试题 shell 2016年9月7日 本文来自于老男孩教育,未经本人同意&#xff0c;禁止转载&#xff01;否则追究法律责任。 原文&#xff1a;http://oldboy.blog.51cto.com/2561410/1632876 企业面试题1&#xff1a; &#xff08;生产实战案例&#xff09;&#x…

深度优化LNMP之Nginx [1]

Nginx基本安全优化 1.调整参数隐藏Nginx版本号信息一般来说&#xff0c;软件的漏洞都和版本有关&#xff0c;因此我们应尽量隐藏或清除Web服务队访问的用户显示各类敏感信息&#xff08;例如&#xff1a;Web软件名称及版本号等信息&#xff09;&#xff0c;这样恶意的用户就很难…

5阶无向完全图_运动轿跑风 全新上汽名爵5预告图发布

【太平洋汽车网 新车频道】近日&#xff0c;上汽名爵官方发布了一组全新一代名爵5&#xff08;询底价|查参配&#xff09;的预告图。从图片可以看出&#xff0c;换代而来的全新名爵5采用最新的家族化设计语言&#xff0c;外观风格与新款名爵6较为接近&#xff0c;采用轿跑式溜背…

Shell 企业29道面试题 [转]

企业面试题1&#xff1a;&#xff08;生产实战案例&#xff09;&#xff1a;监控MySQL主从同步是否异常&#xff0c;如果异常&#xff0c;则发送短信或者邮件给管理员。提示&#xff1a;如果没主从同步环境,可以用下面文本放到文件里读取来模拟&#xff1a; 阶段1&#xff1a;开…

深度优化LNMP之Nginx [2]

配置Nginx gzip 压缩实现性能优化 1.Nginx gzip压缩功能介绍 Nginx gzuo压缩模块提供了压缩文件内容的功能&#xff0c;用户请求的内容在发送出用客户端之前&#xff0c;Nginx服务器会根据一些具体的策略实施压缩&#xff0c;以节约网站出口带宽&#xff0c;同时加快了数据传…

go int 转切片_一文掌握GO语言实战技能(二)

Go 数组Go 切片Go 变量和内存地址Go Map 类型Go 面向对象编程Go 方法的定义GO 数组数组是同一类型的元素集合。Go中的数组下标从0开始&#xff0c;因此长度为n的数组下标范围是[0, n-1]。整数数组中元素默认初始化为0&#xff0c;字符串数组中的元素默认初始化为""。…

设置固定长度_加气块砌筑(构造柱、圈梁设置)技术交底21条

墙体砌筑技术交底我给下发21条&#xff0c;内容不全&#xff0c;砌筑的墙体观感差&#xff0c;欢迎大家提出宝贵意见1、填充墙的材料、平面位置尺寸见建筑施工图纸&#xff0c;不得随意更改。2、当首层填充墙下无基础梁或结构梁板时&#xff0c;墙下应做基础&#xff0c;基础作…

深度优化LNMP之MySQL

MySQL数据库优化框架体系 1.硬件层面优化 2.操作系统层面优化 3.MySQL数据库层面优化 4.MySQL安全优化 5.网站集群架构上的优化 6.MySQL流程、制度控制优化 硬件层面优化 1、数据库物理机采购 CPU&#xff1a; 64位CPU&#xff0c;一台机器2-16颗CPU。至少2-4颗&#xff0…

element vue 纵向滑动条_Vue 部分

1、ES6Vue &#xff1a;1、Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有项目整合。另一方面&#xff0c;当与现代化的…

C#集合通论

前言 写这篇文章的最初动力是来自于一次笔试经历。有一道笔试题大概是这样的&#xff1a;程序使用一个txt文件来存储操作记录。存储记录是多行字符串&#xff0c;每一行代表一次操作记录&#xff0c;格式如下&#xff1a;用户名操作事项名称操作时间。现在假设这个txt文件已经非…

Shell 脚本案例实战 [4]

for循环结构for 循环结构语句1.for循环结构&#xff1a;语法&#xff1a;for 变量名 in 变量取值列表do指令…done提示&#xff1a;在此结构中“in 变量取值列表”可省略&#xff0c;省略时相当于in “$”&#xff0c;使用for i 就相当于使用for i in “$”2.C语言型for循环结构…

深度优化LNMP之PHP

PHP缓存加速介绍1.操作码介绍及缓存原理当客户端请求一个php程序时&#xff0c;服务器的PHP引擎会解析该PHP程序&#xff0c;并将其编译为特定的操作码文件&#xff08;Operate Code,opcode&#xff09;该文件是执行PHP代码后的一种二进制表示形式。默认情况下&#xff0c;这个…

PHP服务Fcgi进程及PHP解析优化

1、PHP引擎缓存加速常见四种软件&#xff1a;1.eAccelerator2.Zendcache3.xcache4.apc5.zendopcache php5.5自带2、使用tmpfs作为缓存加速缓存的文件目录 [rootweb02 ~]# mount -t tmpfs tmpfs /dev/shm -o size256m[rootweb02 ~]# mount -t tmpfs /dev/shm/ /tmp/eaccelerator…